在winXP上https请求错误
本文关键字:请求 错误 https winXP | 更新日期: 2023-09-27 18:02:42
我有一个c#控制台应用程序,它使用一个web服务(一个政府的公共web服务)。为了做到这一点,我在我的c#项目中添加了一个Webservice引用,调用适当的方法,一切都工作得很好。除了在一台电脑上。
这是一台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。
这可能是由于服务器证书不存在正确配置HTTP。HTTPS时为SYS。这也可以由客户端和服务器之间的安全绑定不匹配引起服务器。底层连接已关闭:发送时发生意外错误。--> System.IO.IOException: Received an unexpected EOF or 0 bytes from transport stream.
我试着:
- 防火墙处于待发状态
- 重新安装。net framework 4
- 停用杀毒软件
- 安装所有windows更新
but no success…
有谁知道这里的问题是什么吗?
提前感谢!
我认识到这个问题,它可能与BEAST漏洞缓解有关(尽管也可能是另一个答案中提到的其他漏洞补丁之一)。在苹果对Mavericks实施了缓解措施后,我在使用旧的Windows服务时也遇到了类似的错误。原因与数据包的碎片化有关,这会在没有完全遵循规范的实现中触发错误(显然微软之前没有,但现在没有)。
无论哪种方式,您都需要放弃SP2并确保运行SP3。
如果您可以控制服务器,则可以尝试禁用BEAST缓解。根据那篇文章,XP SP3 应该与BEAST缓解工作,所以它可能更多的是学术兴趣。在生产环境中禁用与安全相关的修复可能是不明智的。
你可能已经知道,Windows XP的扩展支持已经结束了,而且已经一年多没有安全补丁了。
这里有一些简单的可能性,您可以相当快速地查看:
- 问题说明机器正在使用XP SP2,但是所有的Windows更新都被应用了。工作的XP机器是SP2还是SP3?. net 4.0被设计为运行在SP3上,所以如果在你的环境中可能,如果你还没有这样做,这将是一个谨慎的更新,有很多原因。
- 由于去年年底的POODLE漏洞,许多服务器放弃了对SSL 3.0(或更低)的支持,现在需要TLS 1.0或更高。您可能需要检查控制面板/Internet属性/高级/安全以查看问题机器上已安装和启用的SSL版本列表,并确保已安装并检查了TLS 1.0。
- 检查问题机器上的系统时间是否与其他机器的系统时间相同(没有偏离太多)。