我们有这个Web服务客户端运行在.Net framework 1.1内置的Windows XP和Windows 2003上。然而,在poodle攻击和严格的PCI / DSS规则之后,我们必须在服务器上禁用SSLv3。在.net framework 2.0中工作的所有客户端仍然正常工作,但那些在.net fx 1.1上运行的客户端停止工作。
因此我创建了一个示例应用程序,它只调用名为" LinkTest"的函数。并使用.net框架1.1构建它,它甚至不在我的" Windows 7"机。我在.net 2.0中重建了相同的应用程序,它工作正常。
显然它不是阻止它的Windows,但它与框架本身有关。
更新
请记住,我们无法将.net 1.1客户端升级到.net 2.0,因此这不是我们的选择。此外,正如Dia在评论中指出的那样,我已经尝试了kb-907829,但仍然是一样的。
为了完整起见,以下是我们在客户端上收到的错误消息。
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive.
at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Sample.SampleWebService.SampleWebServiceStub.LinkTest() in c:\dir\web references\samplewebapp\reference.cs:line 78
at ParkbankServerQnDFx11.Form1.btnLinkTest_Click(Object sender, EventArgs e) in c:\dir\app\formname.cs:line 150
UPDATE2
昨天我注意到SSL握手工作正常,双方都同意密码,甚至一条数据消息正在从服务器接受的客户端发送并响应,并且该消息也可以在服务器端以明文形式看到。但不知何故,它在接收数据时最终会遇到异常。我已经尝试过增加超时。
UPDATE3
在这个主题上取得了更多进展,我开发了一个小样本Web服务,在IIS7上的Windows 7盒上部署它并禁用SSLv3并使用其他.net 1.1测试应用程序进行测试,它运行良好。
然后我们更新了我们在linux框中运行stunnel的实际服务器并更改了密码套件并添加了较弱的密码,然后测试也进展顺利。显然,这似乎是密码的问题。现在在之前的更新中,我提到双方似乎都同意密码似乎有点矛盾但是我们有理由相信windows box可能会在密码上达成一致,但.net fx 1.1可能不支持我们的强密码在我们的服务器上使用。