WebRequest throwing InvalidProgramException

本文关键字:InvalidProgramException throwing WebRequest | 更新日期: 2023-09-27 18:11:31

我正在使用webrequest从远程服务器获取数据,但突然代码停止工作并开始抛出以下错误:

系统。InvalidProgramException:公共语言运行时检测到一个无效的程序。在System.Net.HttpWebRequest.GetResponse ()

我试着修复这个问题,我发现如果我在32位模式下运行应用程序,它工作得很好,但64位不工作。我已经在64位操作系统上托管了这个应用程序。

但是,它在我的本地机器上运行良好。

我想在64位模式下运行我的应用程序,以节省更多的内存消耗问题。

WebRequest throwing InvalidProgramException

  • 确保代码优化不在项目属性中启用。
  • 在服务器端,确保安装了所有Windows Update补丁,包括最新版本的。net Framework。
  • 将NuGet包更新到最新版本。
  • 确保服务器上的引用解析为与工作站上相同的程序集。如果DLL引用解析为旧版本,可能是针对。net Framework 2构建的版本,这可能是罪魁祸首。
  • 作为数据收集步骤,尝试在服务器上使用Debug配置。产生此异常的一些报告的框架错误是特定于非调试配置的。
  • 确保项目目标是。net框架的最高版本。

我发布了赏金并为weir的答案点赞,但没有足够的积分来评论。无论如何,我们编写了一个测试程序来直接调用GetResponse(),它在服务器上崩溃了。weir的所有观点都不适用,除了更新Windows和任何服务器代码,所以我愿意公平地接受他的答案,这样他就能得到赏金,但不知道怎么做。将代码贴在下面,以便任何人在遇到问题时都可以更容易地在他们的盒子上重现问题。

Imports System.IO
Imports System.Net
Partial Class TestWebRequest
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            Dim request As HttpWebRequest = CType(WebRequest.Create("https://en.wikipedia.org"), HttpWebRequest)
            request.Timeout = 30000
            Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
            Dim receiveStream As Stream = response.GetResponseStream()
            Dim readStream As New StreamReader(receiveStream, Encoding.UTF8)
            webRequestResponse.Text = "Result: " + readStream.ReadToEnd() + Environment.NewLine
            response.Close()
            readStream.Close()
        Catch ex As Exception
            webRequestResponse.Text = "Error Message: " + ex.ToString()
        End Try
    End Sub
End Class
相关文章:
  • 没有找到相关文章