昨天需要把做好的一个wcf服务发布到服务器站点下的一个虚拟目录中
发布过程遇到了一个问题:服务器上的环境是https,因此需要多对配置文件修改
于是在网上找啊找,遇到一个问题找一个问题,可是问题依然没解决。我在网上找到了一篇文章
一步步照着上面写的做。
http://www.codeproject.com/KB/WCF/7stepsWCF.aspx
http://www.codeproject.com/KB/WCF/WCFSSL.aspx
第一步在Binding中添加段
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
第二步将endpoint的地址改成https
第三将 serviceMetadata改成httpsGetEnabled
<serviceBehaviors>
<serviceMetadata httpsGetEnabled="true"/>
</serviceBehaviors>
最后,使用makecert添加证书,为iis站点添加服务器证书
makecert -r -pe -n "CN= compaq-jzp37md0 " -b 01/01/2000 -e 01/01/2050 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr
localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
就酱紫本地环境搭建起来了,也可以正常运行,本来想把配置文件搬到服务器上就米问题了,可是,一刷页面,依然报错
弄了一天,配置改来改去,还是报错。
The protocol 'https' is not supported.
网上搜索说要确定iis是否支持https,于是我又弄了个静态页面,放在iis站点下
发现可以正常访问,那么https是没有问题的。
最后发现原来服务器上的https不是设置在iis上,而是在路由器,通过映射将https映射到http,囧,为毛要酱紫捏?
于是呼,把原来的配置文件复制回来,修改 endpoint的indentity
<identity>
<dns value="服务器域名"/>
</identity>
然后再添加 baseAddresss
<host>
<baseAddresses>
<add baseAddress="https://服务器域名"/>
</baseAddresses>
</host>
酱就搞定问题了,呼,马克一下,以防再犯同样滴错误,吼吼。