Http请求从测试服务器上的ASP.NET代码失败(也从IE失败...但不是firefox!?)

MGO*_*wen 7 c# asp.net internet-explorer remote-host httprequest

我正在从我的ASP.NET应用程序向外部服务器发送HttpRequests,例如:

https://1.2.3.4:12345/Data/Users?Id=1
Run Code Online (Sandbox Code Playgroud)

服务器正在运行一个服务,该服务使用xml(如Web服务)响应这些请求.我的代码发出这样的GET请求:

var wc = new System.Net.WebClient();
wc.Credentials = credentials; // username and password for service

// get data from server.    
string s = Encoding.ASCII.GetString(wc.DownloadData(url));
return s;
Run Code Online (Sandbox Code Playgroud)

它在我的开发机器上工作正常.

但是在我的测试机器(旧的Windows Server 2003 64机箱)上,它失败并出现此异常:

System.Net.WebException:基础连接已关闭:发送时发生意外错误.
---> System.IO.IOException:无法从传输连接读取数据:远程主机强制关闭现有连接.
---> System.Net.Sockets.SocketException:远程主机强行关闭现有连接

谷歌搜索告诉我这是错误有大约一百万种不同的可能原因.似乎没有适用.

细节:

  • 我可以通过将URL粘贴到浏览器来发出请求,这可以在Dev服务器上运行,但是在测试服务器上,它适用于Firefox但不适用于IE(!?!)IE提供了通用的"Internet Explorer无法显示网页" - 如果我将IP地址更改为不存在的内容,则看起来完全相同.
  • 服务器由自签名SSL证书保护,该证书已添加到两个客户端(测试和开发框)上的本地计算机的可信证书存储中.但是它不太可能是证书问题,因为它在开发时工作正常,如果忽略证书验证(在测试中)仍然会发生.
  • 我可以从测试框telnet到服务器(使用正确的IP和端口).

任何人都可以建议尝试一下吗?可能的原因?一种缩小它的方法?

MGO*_*wen 2

我终于在服务器的windows事件日志中发现了相关错误:

从远程客户端应用程序收到 TLS 1.0 连接请求,但服务器不支持客户端应用程序支持的密码套件。SSL 连接请求失败。

我创建了一个新问题,一个实际上可以回答的问题,在这里:如何添加到 ASP.NET HttpRequest 客户端可用的密码套件?