Jon*_*Jon 15 c# windows-server-2003 system.net.webexception
我只在一台运行Windows Server 2003的服务器上收到此错误:
System.Net.WebException:基础连接已关闭:发送时发生意外错误.
这是我的代码......有什么想法吗?
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https:// URL HERE ");
//request.Headers.Add("Accept", "application/xml");
byte[] bytes;
bytes = System.Text.Encoding.ASCII.GetBytes(xml);
request.KeepAlive = false;
request.Accept = "application/xml";
request.ContentType = "application/xml; charset='UTF-8'";
request.ContentLength = bytes.Length;
request.Method = "POST";
request.Timeout = 10000;
request.ServicePoint.Expect100Continue = false;
Run Code Online (Sandbox Code Playgroud)
Bar*_*ann 27
将HttpWebRequest.KeepAlive设置为false对我不起作用.
由于我访问的是HTTPS页面,因此我必须将服务点安全协议设置为Tls12.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Run Code Online (Sandbox Code Playgroud)
请注意,还有其他SecurityProtocolTypes:
SecurityProtocolType.Ssl3
SecurityProtocolType.Tls
SecurityProtocolType.Tls11
Run Code Online (Sandbox Code Playgroud)
因此,如果Tls12不适合您,请尝试其余三个选项.
另请注意,您可以设置多个协议.在大多数情况下这是优选的.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12| SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
Run Code Online (Sandbox Code Playgroud)
使用.NET 4.5的RestSharp我得到了同样的错误.我用cURL测试了相同的URL,它工作正常.经过长时间的调试后,我发现设置SecurityProtocol解决了这个问题.
请参阅:"基础连接已关闭:发送时发生意外错误." 使用SSL证书
Don*_*Yan -8
当客户端计算机无法发送 HTTP 请求时,就会出现此问题。由于连接已关闭或不可用,客户端计算机无法发送 HTTP 请求。当客户端计算机发送大量数据时,可能会出现此问题。要解决此问题,请参阅决议 A、D、E、F 和 O。
https://support.microsoft.com/en-us/kb/915599
| 归档时间: |
|
| 查看次数: |
79038 次 |
| 最近记录: |