我正在使用webrequest从远程服务器获取数据,但突然代码停止工作并开始抛出以下错误:
System.InvalidProgramException:公共语言运行时检测到 程序无效。在System.Net.HttpWebRequest.GetResponse()
我尝试修复此问题,我发现如果我在32位模式下运行应用程序它可以正常工作但不适用于64位。我已经在64位操作系统上托管了该应用程序。
但是,它在我的本地计算机上工作正常。
我想在64位模式下运行我的应用程序以节省更多的内存消耗问题。
答案 0 :(得分:1)
答案 1 :(得分:1)
我发布了赏金并由堰支持了答案,但没有足够的分数留待评论。无论如何,我们编写了一个测试程序来直接调用GetResponse()并在服务器上崩溃。除了更新Windows以及一般任何服务器代码之外,所有weir的要点都不适用,所以我想公平地接受他的回答,所以他得到了赏金,但不知道如何。发布下面的代码,以便任何人都可以在他们的盒子上更容易地重现问题。
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