进入方法时访问冲突异常

时间:2012-04-19 18:04:01

标签: asp.net .net vb.net access-violation

我在申请的一部分过去几天遇到了一些严重的问题。它是一个中等大小的ASP.NET应用程序。有一些代码可以处理错误(将它们记录到数据库中并向用户显示错误页面)。但是最近这段代码在某些机器上停止了正常工作(而不是所有机器)。

我知道来自AccessViolationException的{​​{1}}:

ErrorViewer

每次应用程序尝试显示错误页面时,此错误都会记录到错误查看器中。但由于错误仅发生在使用Faulting application name: w3wp.exe, version: 7.5.7601.17514, time stamp: 0x4ce7afa2 Faulting module name: KERNELBASE.dll, version: 6.1.7601.17651, time stamp: 0x4e21213c Exception code: 0xc0000005 Fault offset: 0x000000000000cacd Faulting process id: 0x1150 Faulting application start time: 0x01cd1e44675765e2 Faulting application path: c:\windows\system32\inetsrv\w3wp.exe Faulting module path: C:\Windows\system32\KERNELBASE.dll Report Id: c43403ad-8a37-11e1-b256-005056891270 安装程序部署的应用程序上,并且dll文件正在加密,因此无法调试此应用程序。稍微更改代码我将初始方法重构为简单的单行程序:

msi

但仍然进入此方法会抛出此堆栈跟踪异常(使用DebugDiag 1.2获得)

Public Shared Function HandleException(ByVal exception As System.Exception) As Guid
    Return New GUID
End Function

这对我来说似乎很奇怪。然后我删除了这个方法调用,突然应用程序开始正常工作(但没有像我想的那样处理错误)。事情是 - 完全相同的代码工作多年,它没有改变一点,只是停止在一些机器上工作 更令人好奇的是:如何调用如上所述的简单方法,只返回简单的GUID,可以抛出at (Exception ) at MyApp.Business.Utilities.HandleException(Exception exception) at () at MyApp.BaseUtilities.ErrorSolution() at (ErrorPage_errorpage , Object , EventArgs ) at MyApp.ErrorPage_errorpage.Page_Load(Object , EventArgs ) at System.EventHandler.Invoke(Object sender, EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error) at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)

是否有人在申请时遇到类似问题?有人可以向我解释为什么会发生这样的事情吗?

1 个答案:

答案 0 :(得分:1)

错误出现了神秘,并且在一些轻微的代码更改后也神秘地消失了(这没有改变代码执行的内容和方式)。在我的团队或其他开发人员中,没有人向我展示这个问题,他们无法相信他们看到的内容。

似乎宇宙中还有一点魔力......