我已经测试了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尊重该服务行为部分?
答案 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角色在项目启动时自动执行此操作。