在本地主机上为https / SSL配置wcf服务

时间:2019-05-06 16:35:10

标签: c# wcf config

编辑:已经修复了它……我只需要更改项目属性并启用SSL。


原始问题:

我正在开发WCF服务,该服务将通过SSL证书托管在IIS服务器中。

当我将代码上传到具有所有证书的服务器上时,我的代码可以很好地工作,但是由于我将安全性添加到了Web配置中,因此当我尝试在本地计算机上对其进行调试时,代码崩溃。

我将以下Web配置用于不需要SSL证书的SOAP服务和需要它的REST服务:

<configuration>
...
    <bindings>
      <basicHttpBinding>
        <binding name="SOAPEndPoint" />
      </basicHttpBinding>
      <webHttpBinding>
        <binding name="SecureBinding" >
          <security mode="Transport"></security>
        </binding>
      </webHttpBinding>
    </bindings>
    <services>
      <service behaviorConfiguration="ServiceBehavior" name="xxx.WS">
        <endpoint address="SOAP" binding="basicHttpBinding" name="SOAPEndPoint" contract="xxx.ISerSoap" />
        <endpoint address="api" binding="webHttpBinding" name="RESTEndPoint" contract="xxx.ISerRest" behaviorConfiguration="RestBehavior" bindingConfiguration="SecureBinding"/>
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpsGetEnabled="true" httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="RestBehavior">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <protocolMapping>
      <add binding="basicHttpsBinding" scheme="https" />
    </protocolMapping>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <directoryBrowse enabled="true" />
  </system.webServer>

</configuration>

我希望能够调试它,而不必每次在调试期间打开它并且必须将其上传到服务器时都需要更改Web配置。

有人在调试模式下调用安全性时知道一种方法吗?还是在我的本地主机上添加对https的支持的简单方法?

1 个答案:

答案 0 :(得分:0)

仅发现解决方案是在项目属性窗口中激活“ SSL Enabled = true”。