![](/img/trans.png)
[英]WCF: Could not establish trust relationship for the SSL/TLS secure channel with authority
[英]SSL WCF "Could not establish trust relationship for the SSL/TLS secure channel with authority 'localhost'
我有一个与http地址完美配合的WCF Web服务,但从那时起我需要确保它可以在https上运行。
因为我用IIS 7,这个过程是很容易得到网站的https结合起来,使用本指南运行在这里
我打开了一个浏览器,得到了通常的安全提示,但是在添加异常后一切正常。
然后我决定安装证书,因为证书是本地主机,服务器和客户端是同一台机器 - 并让向导自动检测位置。
我回到了我的WCF CLIENT代码,这是调用IIS(现在是https)托管的Web服务的客户端,并在2个位置更改了绑定。
跑了代码然后得到这个错误:
“无法与权限'localhost'建立SSL / TLS安全通道的信任关系。”
最后我回到IIS并在SSL设置下,将设置更改为接受客户端证书,并尝试检查是否需要检查,两次都产生相同的错误。
知道如何解决这个问题吗?
更新问题1已修复 - 这是因为证书已发布到machine_name,我在配置中使用了localhost。
现在,这是有效的我得到另一个问题:
在https:// [machine_name] /Downloads.svc上没有可以接受该消息的端点。 这通常是由错误的地址或SOAP操作引起的。 有关更多详细信息,请参阅InnerException(如果存在)。“
内部异常=“远程服务器返回错误:(404)未找到。”
检查IIS站点的web.config,并将DNS绑定更改为localhost。
仍然很开心,但根据微软的说法,这正是WCF应该很好的原因,因为它将编码逻辑中的传输分开,但到目前为止,我必须告诉你,它看起来真的很复杂。
更新
关掉windows防火墙,没帮......
这是我在web.config中的绑定
<basicHttpBinding>
<binding name="IncreasedTimeout"
closeTimeout="12:00:00" openTimeout="12:00:00"
receiveTimeout="12:00:00"
maxReceivedMessageSize="1000000"
sendTimeout="12:00:00">
<security>
<transport></transport>
</security>
</binding>
</basicHttpBinding>
您很可能需要为这两个协议添加显式基地址 ,以便WCF知道您要绑定到这两个协议。 尝试将此添加到您的<service>
定义:
<host>
<baseAddresses>
<add baseAddress="http://your-hostname-here/" />
<add baseAddress="https://your-hostname-here/" />
</baseAddresses>
</host>
此外,请确保您通过计算机的WINS / DNS名称访问服务,或者需要向IIS下的网站实例添加显式主机标头。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.