我有一个c#console应用程序,它使用webservice(一个政府的公共Web服务)。为此,我在我的C#-Project中添加了一个Webservice Reference,调用适当的方法,一切正常。除了一台电脑。
它是Windows XP SP2 PC,我安装了.net framework 4(这是我的应用程序的目标框架)。当我在这里调用相同的命令行工具时,我总是收到一条错误消息。具有相同参数的相同工具的100%百分比在其他所有客户端(Windows 7,Windows 8,Windows 8.1,甚至其他Windows XP计算机)上都能正常工作!?!?!?
错误讯息:
未处理的异常:System.ServiceModel.CommunicationException:An 发出HTTP请求时发生错误 https://adress.com/services/TheServiceWSI。
这可能是因为服务器证书不是 在HTTPS情况下使用HTTP.SYS正确配置。这也可以 是由客户端和客户端之间的安全绑定不匹配引起的 服务器。 ---> System.Net.WebException:基础连接已关闭:发送时发生意外错误。 ---> System.IO.IOException:从传输流中收到意外的EOF或0字节。
我试过了:
但没有成功......
有谁知道这里可能出现什么问题?
提前致谢!
答案 0 :(得分:1)
以下是一些可以快速查看的简单可能性:
答案 1 :(得分:1)
TL; DR;确保使用SP3和所有安全补丁完全修补XP安装。修补了许多SSL / TLS漏洞。
我认识到这个问题,它可能与BEAST漏洞缓解有关(尽管也可能是其他答案中提到的其他漏洞补丁之一)。在Apple与Mavericks结束缓解后,我在与旧的Windows服务交谈时遇到了类似的错误。原因与数据包如何碎片化有关,这会在实现中引发错误,而这些错误并不完全符合规范(显然微软早先没有,但现在却是这样)。
无论哪种方式,您都需要删除SP2并确保运行SP3。
如果您可以控制服务器,则可以尝试disable the BEAST mitigation。根据该帖子,XP SP3 应与BEAST缓解工作,因此它可能更具学术兴趣。在生产环境中禁用与安全相关的修复可能并不明智。
正如您可能已经意识到的那样,Windows XP长期以来已经通过了扩展支持,并且已经超过一年没有安全补丁了。