IIS 表达不尊重 serviceCredentials
IIS express dont respect serviceCredentials
我正在测试 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 Express 上部署它时,一切正常...除了它在端口 44300 上(没问题),但它使用 IIS Express 自己的证书,该证书是在 iis Express 安装上生成的。
我明确指定,所以他应该使用我的按指纹和价值定位的证书 "XXXXXXX...."
如何强制 IIS 表达尊重该服务行为部分?
#SCOTT HANSELMAN 有一篇不错的博客 post:
http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx
好的,我有一个解决方案。
我写的是不同类型的证书 - 它用于客户端的服务认证。
用于建立 SSL 连接的证书实际上是用这个命令设置的:
netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=YOURCERTHASHHERE
Azure 项目 - Web 角色会在项目启动时自动执行此操作。
我正在测试 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 Express 上部署它时,一切正常...除了它在端口 44300 上(没问题),但它使用 IIS Express 自己的证书,该证书是在 iis Express 安装上生成的。
我明确指定,所以他应该使用我的按指纹和价值定位的证书 "XXXXXXX...."
如何强制 IIS 表达尊重该服务行为部分?
#SCOTT HANSELMAN 有一篇不错的博客 post:
http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx
好的,我有一个解决方案。 我写的是不同类型的证书 - 它用于客户端的服务认证。
用于建立 SSL 连接的证书实际上是用这个命令设置的:
netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=YOURCERTHASHHERE
Azure 项目 - Web 角色会在项目启动时自动执行此操作。