【问题标题】:Error connecting to secure web service!连接到安全 Web 服务时出错!
【发布时间】:2009-11-16 17:08:51
【问题描述】:

当我尝试在 Visual Studio 2008 中创建对第 3 方 Web 服务的 Web 引用时,我一直收到以下错误。

'从传输流中接收到意外的 EOF 或 0 字节'

如果我尝试使用 wsdl.exe 工具生成代理类,也会遇到同样的错误。

我可以确认 Web 服务正在正常运行,因为我可以通过 SOAPUi 客户端等第三部分工具进行连接。

我错过了一些简单的东西吗?


我后来发现了以下帖子:http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/37c376a3-f50c-4b57-a1df-83dc43fcddbf

虽然它准确地描述了我的问题,但我不确定我是否理解解决方案。有没有人可以澄清一下?

【问题讨论】:

  • 您在什么时候收到此错误?添加网络参考时?或者在调用其中一种网络方法时?
  • 您可以发布身份验证详细信息吗? j/k
  • 此第 3 方网络服务是否通过 HTTPS?
  • 是的,它是第三方网络服务。
  • 尝试从 Visual Studio 中创建 Web 引用时会出现此问题

标签: c# .net wsdl


【解决方案1】:

(来自上面提到的 MSDN 论坛)

场景:

本地端:Asp.net 2.0 Web Service、IIS 6.0

远程端:Java Web Services、Apache、本地 ssl 证书(https)

解决方案:

简而言之,问题是当 Web 服务尝试连接以建立 ssl 握手时,默认使用 TLS,在这种情况下,Java Web 服务是 SSLv3,但错误从未以纯文本形式显示。

为了进行配置,您已设置为:

System.Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Ssl3

在此之后,服务将握手并继续。

【讨论】:

    【解决方案2】:

    最后我下载了 Visual Studio 2010 试用版,猜猜它的工作原理!

    别问我为什么。

    【讨论】:

      【解决方案3】:

      太老了,但万一其他人在苦苦挣扎,这是另一个在遗留代码中对我有用的尝试:

      System.Net.ServicePointManager.SecurityProtocol = (System.Net.SecurityProtocolType)3072;
      

      这是 TLS 1.2,但 .NET 2.0 中的枚举中不存在该值。

      【讨论】:

        猜你喜欢
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        • 2014-12-25
        • 1970-01-01
        • 1970-01-01
        • 2014-01-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多