在浏览器内运行WCF服务主机

在浏览器内运行WCF服务主机,wcf,Wcf,我有一个WCF中ReST服务的示例项目。我只是想调试一下。然而,当我启动调试时,服务总是在“WCF测试客户端”工具内启动。相反,我正在寻找在浏览器中运行的主机,以便下载WSDL文件 我已尝试删除项目属性中的“开始选项”。然后,服务将在WCF自主机中打开,而不是WCF测试客户端。如果我尝试使用postman在启用WCF Self-Host的情况下调用服务,那么执行永远不会到达代码,只会抛出400个错误代码 我还尝试将调试器附加到Chrome上,但没有任何效果。我不知道配置或Visual studi

我有一个WCF中ReST服务的示例项目。我只是想调试一下。然而,当我启动调试时,服务总是在“WCF测试客户端”工具内启动。相反,我正在寻找在浏览器中运行的主机,以便下载WSDL文件

我已尝试删除项目属性中的“开始选项”。然后,服务将在WCF自主机中打开,而不是WCF测试客户端。如果我尝试使用postman在启用WCF Self-Host的情况下调用服务,那么执行永远不会到达代码,只会抛出400个错误代码

我还尝试将调试器附加到Chrome上,但没有任何效果。我不知道配置或Visual studio选项中缺少了什么。我希望在启动调试时,它会在浏览器中打开一个新选项卡,其中包含服务的基本地址

下面是我当前的配置文件

  <system.web>
<compilation debug="true" />
<membership defaultProvider="ClientAuthenticationMembershipProvider">
  <providers>
    <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
  </providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
  <providers>
    <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
  </providers>
</roleManager>
</system.web>
 <system.serviceModel>
<services>
  <service name="WellacyMobileAPI.Service">
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8733/WellacyMobileAPI/" />
      </baseAddresses>
    </host>
    <endpoint address="" binding="basicHttpBinding" contract="WellacyMobileAPI.IService">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
  </service>
</services>
<behaviors>
  <endpointBehaviors>
    <behavior name="serviceBehavior">
      <webHttp />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="serviceBehavior">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceAuthorization serviceAuthorizationManagerType="WellacyMobileAPI.RestAuthorizationManager, WellacyMobileAPI" />
    </behavior>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
 </system.serviceModel>

调试WCF服务时默认启动WCF测试客户端的原因是浏览器不支持SOAP消息。这意味着并非所有WCF服务都是http模式的WCF服务,因此浏览器无法触发其他WCF服务,该服务通过其他绑定和消息格式与客户端通信。

好的。所以,这意味着在我的配置文件的某个地方,有SOAP的配置?等等,让我将配置文件添加到问题中。是否要将该服务发布为restful服务?您应该将basichttpbinding更改为webhttpbinding,并将webhttp行为应用于endpoint.com。谢谢这就是问题所在。我将绑定创建为webhttp,但没有在实际端点中更改它。