尝试在Visual Studio 2008中创建Web引用到第三方Web服务时,我一直收到以下错误。
'从传输流'
收到意外的EOF或0字节如果我尝试使用wsdl.exe工具生成代理类,我也会遇到同样的错误。
我可以确认Web服务正在运行,因为我可以通过第三方工具(例如SOAPUi客户端)连接到该服务。
我错过了简单的事情吗?
此后我发现了以下帖子:http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/37c376a3-f50c-4b57-a1df-83dc43fcddbf
虽然它完全描述了我的问题,但我不确定我是否理解该解决方案。有人能澄清吗?
答案 0 :(得分:2)
(来自上面引用的MSDN论坛)
<强>情境:强>
本地方:Asp.net 2.0 Web服务,IIS 6.0
远程端:Java Web服务,Apache,本地ssl证书(https)
<强>解决方案:强>
简而言之,问题是当Web服务尝试连接以建立ssl握手时,默认情况下使用TLS,在这种情况下,java Web服务是SSLv3,但错误从未以纯文本形式显示。
为了配置此项,您已设置为:
System.Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Ssl3
在此之后,服务将进行握手并继续。
答案 1 :(得分:1)
最后,我下载了Visual Studio 2010试用版,并猜测它的工作原理!
不要问我为什么。
答案 2 :(得分:0)
太老了,但是如果有人在挣扎,这是另一种在遗留代码中为我工作的尝试:
System.Net.ServicePointManager.SecurityProtocol = (System.Net.SecurityProtocolType)3072;
这是TLS 1.2,但.NET 2.0的枚举中不存在该值。