我的服务器最近已升级为支持TLS 1.2,而其他服务器(TLS 1.0和TLS 1.1。)已被禁用。现在,当我尝试生成引用时,它会给出以下异常:
服务网址= https://server-name/service.asmx
错误:无法从“service url”获取元数据如果这是您有权访问的Windows(R)Communication Foundation服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange错误URI上的MSDN文档:“service url”元数据包含无法解析的引用:“service url”。将HTTP请求发送到“服务URL”时发生错误这可能是由于在HTTPS情况下未使用HTTP.SYS正确配置服务器证书。这也可能是由客户端和服务器之间的安全绑定不匹配引起的。底层连接已关闭:发送时发生意外错误。从传输流中收到意外的EOF或0字节。 HTTP GET错误URI:“service url”下载“service url”时出错。底层连接已关闭:发送时发生意外错误。从传输流中收到意外的EOF或0字节。
我在以下链接尝试了解决方案,但没有为我工作,请帮助。
support.microsoft.com/kb/888528
答案 0 :(得分:7)
我们最近遇到了这个问题,因为PCI合规性迫使我们全面禁用SSL3和TLS 1.0。最终,我们发现的最佳解决方案与客户端应用程序用于连接.NET 4.5+上的Web服务的解决方案相同;即,添加一些代码以在运行时调整Visual Studio的设置。在最基本的形式中,看起来像这样:
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12;
我们通过一个带有简单配置UI的VS软件包来实现这一点,如果你想要一个插入式解决方案,可以在visual studio gallery中找到它:
https://visualstudiogallery.msdn.microsoft.com/63750942-1ebe-45dd-bade-552dd850873e
如果你想自己处理它,你需要做的就是创建一个VSIX包或一个加载项(两者都需要visual studio sdk)。
祝你好运!答案 1 :(得分:0)
我也遇到了同样的问题,我无法在Visual Studio中添加服务引用。
但是在安装插件并在Visual Studio中启用TLS1.2之后,我能够更新服务参考。
工具->安全协议管理器2013
https://visualstudiogallery.msdn.microsoft.com/63750942-1ebe-45dd-bade-552dd850873e
我遇到错误:
请求已中止:无法创建SSL / TLS安全通道。 元数据包含无法解析的引用: 向https://...Service.svc发出HTTP请求时发生错误。 这可能是由于在HTTPS情况下未使用HTTP.SYS正确配置服务器证书。这也可能是由于客户端和服务器之间的安全绑定不匹配引起的。 基础连接已关闭:发送时发生意外错误。 无法从传输连接中读取数据:远程主机强行关闭了现有连接。