我正在尝试在本地复制生产系统,但在使用服务时遇到问题。我已将服务器的本地实例设置得尽可能靠近生产服务器,但我的本地客户端无法使用它。然而,我本地机器上的同一个客户端在生产实例上运行良好。
为了在本地使用生产系统,我使用hosts文件将所有涉及的地址重定向到127.0.0.1,并在IIS中使用主机头。
我在我的本地机器上意识到的唯一区别是,我没有使用从 CA 购买的 SSL 证书,而是使用了我使用 IIS 资源工具包中的 SelfSSL 创建的证书。我使用以下命令创建证书:
selfssl.exe/T/N:CN=my.url/V:365/S:12345/P:443 (其中12345是我网站在IIS中的ID)
每当我尝试在本地使用/调试客户端时,我都会收到错误消息:
“无法激活请求的服务‘https://my.url/myService.svc’。有关详细信息,请参阅服务器的诊断跟踪日志。”
我尝试在浏览器中使用以下 URL 访问该服务:
https://my.url/myService.svc?wsdl
http://my.url/myService.svc?wsdl
在这两种情况下,它都返回了 wsdl XML。
谁能帮我解决这个问题?
干杯
最佳答案
已解决!!...这是证书中私钥的权限问题。 ASPNET 用户需要权限,我使用 winhttpcertcfg 授予他们权限:
winhttpcertcfg -g -c LOCAL_MACHINE\My -s my.url -a ASPNET
关于vb.net - WCF/SSL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/830088/