【发布时间】:2016-04-20 21:57:21
【问题描述】:
我有一个 c# .net 网站,我的网站确实向银行请求支付系统。大约 3-4 天前一切都很好,但现在我无法从我的服务器请求银行服务器。我收到此错误:“底层连接已关闭:发送时发生意外错误。”当我尝试向银行提出请求时。
当我从 .net c# 代码请求时收到此错误。
"The underlying connection was closed: An unexpected error occurred on a send."
这是我的代码;
public string Send(string request)
{
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
try
{
string postData = "";
string responseData = "";
System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("ISO-8859-9");
postData = "https://xxxxxxxxx.aspx?data=[DATA]";
postData = postData.Replace("[DATA]", request);
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(postData);
webReq.Timeout = 60000;
webReq.KeepAlive = false;
webReq.Method = "GET";
WebResponse webResp = webReq.GetResponse();
Stream respStream = webResp.GetResponseStream();
byte[] buffer = new byte[10000];
int len = 0, r = 1;
while (r > 0)
{
r = respStream.Read(buffer, len, 10000 - len);
len += r;
}
respStream.Close();
responseData = encoding.GetString(buffer, 0, len).Replace("\r", "").Replace("\n", "");
return responseData;
}
catch (System.Net.Sockets.SocketException ex)
{
return null;
}
catch (Exception ex)
{
return null;
}
}
当我从 IE 11 尝试时遇到此错误。
当我尝试 IE 11 时,EventViewer 显示错误。
A fatal alert was received from the remote endpoint. The TLS protocol defined fatal alert code is 40.
但是这里有一个有趣的事情,Chrome 和 Firefox 可以同一个地址。
- 操作系统:Windows Server 2012 R2
- 已安装所有证书。
- 为 POODLE 配置的 TLS 设置。(来自:http://wiki.maestropanel.com/windows-server-ssl-tls-yapilandirmasi/)
- IIS 版本:8.5
- .Net 版本:4.5
感谢您的帮助!
【问题讨论】:
-
在故障开始前不久,您的服务器或应用程序中是否有任何变化?是否应用了任何 Windows 更新?你确定问题不在银行这边吗?
-
我确信问题不在于银行方面。如果问题出在银行方面,如何使用成功的 chrome 和 firefox。我高银行的支持和 ms14-066 更新最后一山。我最后一次成功的交易日期是 12 月 5 日。
-
如果您上个月进行了更新,并且距离上一次成功交易已经过去一个月,那么您可能希望将更新回滚到以前的版本,看看是否有效。跨度>
-
我做了一些谷歌搜索,看起来 ms14-066 是一个拙劣的补丁,破坏了一些 Schannel 功能。卸载更新。
-
银行在上次安装时执行了更新,我不想回滚。我怎样才能超越这个问题,问题是什么。问题出在哪里,我应该去哪里看?
标签: c# asp.net ssl webclient tls1.2