在浏览器内运行WCF服务主机
我有一个WCF中ReST服务的示例项目。我只是想调试一下。然而,当我启动调试时,服务总是在“WCF测试客户端”工具内启动。相反,我正在寻找在浏览器中运行的主机,以便下载WSDL文件 我已尝试删除项目属性中的“开始选项”。然后,服务将在WCF自主机中打开,而不是WCF测试客户端。如果我尝试使用postman在启用WCF Self-Host的情况下调用服务,那么执行永远不会到达代码,只会抛出400个错误代码 我还尝试将调试器附加到Chrome上,但没有任何效果。我不知道配置或Visual studio选项中缺少了什么。我希望在启动调试时,它会在浏览器中打开一个新选项卡,其中包含服务的基本地址 下面是我当前的配置文件在浏览器内运行WCF服务主机,wcf,Wcf,我有一个WCF中ReST服务的示例项目。我只是想调试一下。然而,当我启动调试时,服务总是在“WCF测试客户端”工具内启动。相反,我正在寻找在浏览器中运行的主机,以便下载WSDL文件 我已尝试删除项目属性中的“开始选项”。然后,服务将在WCF自主机中打开,而不是WCF测试客户端。如果我尝试使用postman在启用WCF Self-Host的情况下调用服务,那么执行永远不会到达代码,只会抛出400个错误代码 我还尝试将调试器附加到Chrome上,但没有任何效果。我不知道配置或Visual studi
<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,但没有在实际端点中更改它。