我有一个WCF中的ReST服务的示例项目。我只是想调试它。但是,当我开始调试时,该服务始终在“ WCF Test Client”工具内启动。相反,我正在寻找要在浏览器中运行的主机,以便可以下载WSDL文件。
我尝试在项目属性中删除“开始选项”。然后,将在WCF Self Host中打开服务,而不是WCF Test Client。如果我尝试在启用WCF自助主机的情况下使用邮递员来调用服务,则执行永远不会到达该代码,只会抛出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>
答案 0 :(得分:1)
调试WCF服务时默认启动WCF测试客户端的原因是浏览器不支持SOAP消息。这意味着并非所有的WCF服务都是HTTP模式的WCF服务,因此浏览器无法触发另一个WCF服务,后者通过其他绑定和消息格式与客户端进行通信。
https://docs.microsoft.com/en-us/dotnet/framework/wcf/wcf-and-aspnet-web-api