【问题标题】:asp.NET 4.8 WebRequest errors with "The underlying connection was closed: An unexpected error occurred on a send."asp.NET 4.8 WebRequest 错误,显示“底层连接已关闭:发送时发生意外错误。”
【发布时间】:2021-11-24 21:43:06
【问题描述】:

在我的网络服务器上的一个特定网站上,WebRequests 开始抛出以下错误:“底层连接已关闭:发送时发生意外错误。”

  • 我的 asp.NET 网站正在运行框架版本 4.8。
  • 我正在发出请求的同一网站上请求一个页面。
  • 此代码已存在多年,突然停止在此网站上运行
  • 同样的代码在同一网络服务器上运行的不同网站上也能正常工作

请求代码:

Dim myReq As System.Net.WebRequest = System.Net.WebRequest.Create("https://example.com")
myReq.Method = "GET"

myReq.ContentType = "text/html; encoding='utf-32'"


Dim wr As System.Net.WebResponse = myReq.GetResponse()
Dim receiveStream As System.IO.Stream = wr.GetResponseStream()
Dim reader As System.IO.StreamReader = New System.IO.StreamReader(receiveStream, Encoding.UTF8)
Dim content As String = reader.ReadToEnd()

我已尝试将以下内容添加到执行请求的页面和 global.asax,但它不起作用。不过,它不应该是必需的,因为我使用的是 .net 4.8:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12

【问题讨论】:

  • 您是否检查了受影响站点的 DNS 设置/HOSTS 文件条目?
  • 认为您可能在安全协议方面走在了正确的轨道上。看看stackoverflow.com/questions/22627977/…,它提出了一些其他的补充
  • @RichardDeeming 你是一颗钻石。这就是问题所在——三天来我一直在查看所有内容——你一这么说,我记得上周添加了一个主机值。删除它,错误就消失了。谢谢!如果您添加为答案,我会标记它。

标签: asp.net vb.net ssl httpwebrequest webrequest


【解决方案1】:

如 cmets 中所述,这通常是内部 DNS 或 HOSTS 文件条目的问题。服务器将站点的域解析为错误的内部地址,或者它试图访问站点的公共地址并混淆路由器。

【讨论】:

  • 感谢 Richard,您的洞察力让我头疼不已。
猜你喜欢
  • 2023-01-25
  • 1970-01-01
  • 2020-12-02
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多