IIS表达不尊重serviceCredentials

时间:2015-02-16 14:35:09

标签: wcf iis-express

我已经测试了WCF服务,我想将它用于开发目的,部署到IIS Express(非经典IIS)

我的Web.config

的一部分

                           

</serviceHostingEnvironment>

<services>

  <service name="WcfService1.Service1" behaviorConfiguration="test">
    <endpoint binding="basicHttpsBinding" contract="WcfService1.IService1" />
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
  </service>

</services>


<behaviors>
  <serviceBehaviors>
    <behavior>
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>


    <behavior name="test">

      <serviceMetadata httpGetEnabled="False" httpsGetEnabled="True" />
      <serviceDebug includeExceptionDetailInFaults="True" />
      <serviceCredentials>
        <serviceCertificate findValue="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
                            storeLocation="LocalMachine"
                            storeName="My"
                            x509FindType="FindByThumbprint" />
      </serviceCredentials>
    </behavior>

  </serviceBehaviors>
</behaviors>
<protocolMapping>
  <add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>

当我在IIS上部署它时,一切正常......除了它在端口44300上(没关系)但是它使用在iis express安装上生成的IIS Express自己的证书。

我明确指出,所以他应该使用我的证书,位于指纹和价值“XXXXXXX ....”

如何强制IIS express尊重该服务行为部分?

2 个答案:

答案 0 :(得分:0)

#SCOTT HANSELMAN有一篇很好的博客文章:

 http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx

答案 1 :(得分:0)

好的,我有一个解决方案。 我写的是不同类型的证书 - 它用于客户端的服务认证。

用于SSL连接建立的证书确实使用以下命令设置:

netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=YOURCERTHASHHERE

Azure项目 - Web角色在项目启动时自动执行此操作。