Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.Net错误-System.AccessViolationException:尝试读取或写入受保护的内存_.net_Asp.net_C - Fatal编程技术网

.Net错误-System.AccessViolationException:尝试读取或写入受保护的内存

.Net错误-System.AccessViolationException:尝试读取或写入受保护的内存,.net,asp.net,c,.net,Asp.net,C,我正在使用服务器端activex控件进行分页(http://activexperts.com/xmstoolkit/). 下面的代码在windows 2003服务器上有效,但现在我们转到windows 2008,我收到以下错误: System.AccessViolationException:尝试读或写保护 记忆。这通常是一个迹象 另一个内存已损坏。在 AXmsCtrl.PagerProtocolSnppClass.Clear() 默认情况下,按钮1单击(对象 发件人,事件参数(e)在 D:\A

我正在使用服务器端activex控件进行分页(http://activexperts.com/xmstoolkit/). 下面的代码在windows 2003服务器上有效,但现在我们转到windows 2008,我收到以下错误:

System.AccessViolationException:尝试读或写保护 记忆。这通常是一个迹象 另一个内存已损坏。在 AXmsCtrl.PagerProtocolSnppClass.Clear() 默认情况下,按钮1单击(对象 发件人,事件参数(e)在 D:\Apps\pagetest\Default.aspx.vb:line 十五

我已经搜索和阅读了各种线程,但无法找到解决方案。提前感谢你的帮助

代码如下:

Partial Class _Default
    Inherits System.Web.UI.Page
    Private objSnppProtocol As PagerProtocolSnpp = New PagerProtocolSnpp
    Private objPagerMessage As PagerMessage = New PagerMessage

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try

            objPagerMessage.Clear()
            objPagerMessage.Recipient = "12345"
            objPagerMessage.Data = "Testing send page."

            objSnppProtocol.Clear()
            objSnppProtocol.Server = "111.111.11.11"
            objSnppProtocol.ServerPort = System.Int32.Parse("446")
            objSnppProtocol.ServerTimeout = 2000

            objSnppProtocol.ProviderPassword = "2125551212 2125551212"
            objSnppProtocol.LogFile = Server.MapPath("log.txt")

            ' Send
            objSnppProtocol.Send(objPagerMessage)
            UpdateResult(objSnppProtocol.LastError, objSnppProtocol.ProviderResponse)
        Catch exc As Exception
            Response.Write("<br><font color='maroon'><strong>Paging ERROR:</strong></font><br>" & exc.ToString() & "<br>Trace: " & exc.StackTrace.ToString())
        End Try
    End Sub

    Private Sub UpdateResult(ByVal numResult As System.Int32, ByVal strResponse As String)
        ctlResult.Text = numResult.ToString() & ": " & objSnppProtocol.GetErrorDescription(numResult)
        ctlResponse.Text = strResponse
    End Sub
End Class
部分类\u默认值
继承System.Web.UI.Page
Private objSnppProtocol As PagerProtocolSnpp=New PagerProtocolSnpp
Private objPagerMessage作为PagerMessage=新的PagerMessage
受保护的子按钮1\u单击(ByVal sender作为对象,ByVal e作为System.EventArgs)处理按钮1。单击
尝试
objPagerMessage.Clear()
objPagerMessage.Recipient=“12345”
objPagerMessage.Data=“测试发送页面。”
objSnppProtocol.Clear()
objSnppProtocol.Server=“111.111.11.11”
objSnppProtocol.ServerPort=System.Int32.Parse(“446”)
objSnppProtocol.ServerTimeout=2000
objSnppProtocol.ProviderPassword=“2125551212 2125551212”
objSnppProtocol.LogFile=Server.MapPath(“log.txt”)
“派
objSnppProtocol.Send(objPagerMessage)
UpdateResult(objSnppProtocol.LastError,objSnppProtocol.ProviderResponse)
捕获exc作为例外
响应。写入(“
分页错误:
”&exc.ToString()和“
跟踪:”&exc.StackTrace.ToString()) 结束尝试 端接头 私有子更新结果(ByVal numResult作为System.Int32,ByVal strResponse作为字符串) ctlResult.Text=numResult.ToString()&“&objSnppProtocol.GetErrorDescription(numResult) ctlResponse.Text=strResponse 端接头 末级
您的组件在非托管代码中崩溃-请与供应商联系。-另外,您是否正在尝试在64位系统上运行32位代码?

远离匈牙利符号-MS建议人们在2003年停止使用:)无需在所有内容上使用“obj”-现在所有内容基本上都是对象。使用名称来表示其用途。使用SNNPprotocol代替objSnppProtocol。。。我认为访问冲突是不推荐的(再也看不到)异常。没想到有一天我会发现.net中存在这样的异常。对我来说,这是一个悲伤的日子。@Miguel-除非您执行不安全的操作或处理非托管代码,否则它们基本上都是。您仍然可以通过互操作、错误的封送处理等来中断—但这样您就跨越了本机/托管代码之间的界限。在本例中,它是一个activex控件。新的操作系统是64位的。我们将联系供应商。问题是win 2008服务器上使用了错误的互操作dll。当安装active x控件时,它将创建一个互操作dll,我们将其放置在网站bin文件夹中。问题是,当安装在我的笔记本电脑(windows vista)上时,它会创建一个互操作dll,而该dll在临时服务器(win 2008)上不起作用。因此,基本上,在win 2008 staging server上,需要将示例站点文件夹中的互操作dll复制到网站文件夹中。