连接到安全Web服务时出错!

时间:2009-11-16 17:08:51

标签: c# .net wsdl

尝试在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

虽然它完全描述了我的问题,但我不确定我是否理解该解决方案。有人能澄清吗?

3 个答案:

答案 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的枚举中不存在该值。