WCF服务+客户端(TLS1.2发行)
我们的服务器已禁用SSLv3,TLS1.0和TLS1.1。因此,Visual Studio在尝试检索WSDL时尝试添加服务引用时失败。WCF服务+客户端(TLS1.2发行)
“的基础连接已关闭:在发送时发生意外错误 无法读取从传输连接数据:一个现有的连接被强行关闭远程主机 一个现有的连接被强行关闭远程主机 元数据包含无法解析的引用: 将HTTP请求设置为https://mywebsite.com/Service/Service.svc?wsdl时发生错误,这可能是由于在HTTPS情况下服务器证书没有用HTTP.SYS正确配置。也可能是由于客户端和服务器之间的安全绑定不匹配造成的 底层连接已关闭:意外编辑错误发生在发送。 验证失败,因为远程方关闭了传输流。 如果该服务已在当前解决方案定义,尝试构建解决方案,并再次添加服务引用“。
的WSDL是在浏览器访问该WSDL下载好时TLS 1.0/1.1和SSLV3启用。但是,由于PCI的要求,我们必须禁用SSLV3,TLS1.0和TLS1.1。
我知道下面System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
的,但我不能肯定这是否会去连接控制台客户端或WCF服务(或两者)。
任何建议将是一个ppreciated
线以下的行需要在客户端,因为这是什么使连接。
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
按照这个博客TLS 1.2 and .NET Support: How to Avoid Connection Errors,上面会针对.NET 4.5
工作的.Net 4.6及以上,则默认为TLS 1.2,你不需要指定TLS 1.2
对于.Net 4.0,你需要下面的代码。
System.Net.ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
NET 3.5或更低版本您需要为您的操作系统(在博客中列出)安装适当的Microsoft修补程序。
再次感谢您的帮助。 –
这将不得不在客户端,因为它是客户端连接 – Dijkgraaf
另请参阅http://blogs.perficient.com/microsoft/2016/04/tsl-1-2-and-net-support/它依赖于.Net版本。 – Dijkgraaf
迪杰 - 这工作,现在我得到一个超时,我将不得不跟踪,但比以前的消息好很多!如果你作为回答发布而不是评论,我会提高你的评价。 :)感谢您的澄清。没有对服务进行任何更改 - 客户端被迫使用上面的行使用TLS1.2进行连接。如果我的目标.net框架4.6.1 +它默认tls 1.2,我不需要行 –