我正在尝试将WCF服务从http转换为https。
它使用的是自签名证书。
我可以使用网络浏览器浏览该服务,但当我尝试将其作为网络参考添加到另一个.Net应用程序时,我收到以下错误:
下载
https://localhost:40300/DBService/SPService.svc/_vti_bin/ListData.svc/$metadata
时出错 请求失败,HTTP状态为403:Forbidden。
我已经尝试过根据很多Googling以各种方式编辑web.config,但仍然有上述错误,无法缩小原因......
这是我的web.config:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="DatabaseServer" value="Server2008"/>
<add key="Database" value="Licensor"/>
<add key="VerboseLogging" value="True"/>
</appSettings>
<system.web>
<compilation targetFramework="4.0"/>
<httpRuntime/>
</system.web>
<system.serviceModel>
<services>
<service name="DBService.SPService">
<endpoint address="https://localhost/DBService/SPService.svc"
binding="basicHttpBinding"
bindingConfiguration="secureHttpBinding"
contract="DBService.IService1"/>
<endpoint address="mex"
binding="mexHttpsBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="secureHttpBinding">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<!--<protocolMapping>
<add binding="basicHttpsBinding" scheme="https"/>
</protocolMapping>-->
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
任何人都可以帮助找到原因,或者甚至更好地指出我使用basicHttpBinding进行基于SSL的WCF工作样本?
我花了几个小时试图解决这个问题,所以非常感谢你在这个问题上的时间。如果您需要我可以访问我的机器。