我正在编写支持SOAP和REST的WCF Web服务。我还启用了WCF REST帮助页面,这对Web服务的使用者非常有用。由于我在IIS和web.config中启用了SSL(见下文),因此我无法再获得WCF REST帮助页面。如果我访问https://myHost/myWebService/help
,则会收到HTTP 404错误。在启用SSL之前,我可以访问该页面。
下面是我的web.config。有人可以帮我理解如何通过HTTPS / SSL启用WCF REST帮助页面吗?
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
<service name="MyNs.MyServiceWebserviceImpl" behaviorConfiguration="DefaultBehavior">
<endpoint name="MyServiceRestEndpoint" address="" binding="webHttpBinding" behaviorConfiguration="MyServiceRestBehavior" contract="MyNs.IMyServiceWebservice" />
<endpoint name="MyServiceSoapEndpoint" address="soap" binding="basicHttpBinding" bindingConfiguration="MyServiceSoapBinding" behaviorConfiguration="MyServiceSoapBehavior" contract="MyNs.IMyServiceWebservice" />
<endpoint name="MyServiceMexEndpoint" address="mex" binding="mexHttpsBinding" bindingConfiguration="" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="DefaultBehavior">
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="MyServiceRestBehavior">
<webHttp helpEnabled="true" defaultOutgoingResponseFormat="Json" automaticFormatSelectionEnabled="true" />
</behavior>
<behavior name="MyServiceSoapBehavior" />
</endpointBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding name="MyServiceRestBinding">
<security mode="Transport" />
</binding>
</webHttpBinding>
<basicHttpBinding>
<binding name="MyServiceSoapBinding">
<security mode="Transport" />
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
</configuration>
答案 0 :(得分:0)
httpGetEnabled
元素的httpsGetEnabled
和serviceMetadata
属性控制对服务WSDL文档的访问。对于基于webHttpBinding
的端点,提供WSDL文档不适用,因为WCF提供了自动生成的帮助“网站”来记录服务。
使用 webHttp
端点行为启用帮助网站为shown on this MSDN page.
更新:因为我忽略了问题中的配置都准备好了...
似乎获得多个绑定并且SSL工作正确可能需要比明显更多的配置。这个MSDN forum question and answer提供了更多细节。它使用名为standardEndpoint
的WCF 4.0配置功能。答案还包含一个包含示例代码的ZIP文件。