将WCF移动到HTTPS

时间:2016-06-17 09:02:42

标签: wcf

我的基于http的网络服务工作正常,我被要求将其移至https(IIS上的证书和内容已经完成)。

但我完全坚持我需要做的事情。所有的网站似乎都向你展示了对web.config文件做了哪些更改,但是当我查看它时,它就像这些(例如没有服务元素),并且没有一个网站提到对客户端配置的更改制作并且它们都是5年前或更长时间。

当我检查调用webservice的客户端配置文件时,似乎有一半的配置条目应该在服务器上的新web.config中。

有人可以帮忙吗?

CLIENT配置文件。

<configuration>
  <system.serviceModel>
    <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IMyService" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" useDefaultWebProxy="false" />
            </basicHttpBinding>
        </bindings>
    <client>
      <endpoint address="http://example.com/TestService/TestService.svc" binding="basicHttpBinding"
          bindingConfiguration="BasicHttpBinding_IMyService" contract="Service.IMyService"
          name="BasicHttpBinding_IMyService" />
    </client>
    </system.serviceModel>
</configuration>

SERVER WEB.CONFIG

  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text">
          <readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>

1 个答案:

答案 0 :(得分:0)

我更改了您的设置,因此与我的设置类似。您应该使用特定于您的服务器的值:

我添加了

switchBoolean = !switchBoolean;

<security mode="Transport"></security>

这是指定证书所必需的,应使用传输安全模式。

<serviceMetadata httpsGetEnabled="true" httpGetEnabled="true"/>
          <serviceCredentials>
             <serviceCertificate findValue="<thumbprint>" storeLocation="LocalMachine"
             storeName="My" x509FindType="FindByThumbprint" />
          </serviceCredentials>

确保将值更改为证书的指纹。您还应确保证书位于正确的商店中。

这只是在我身边猜测。拿一粒盐,因为我没有用你的配置进行测试。