【问题标题】:The process was terminated due to an unhandled exception in InteropServices.SEHException由于 InteropServices.SEHException 中的未处理异常,该进程已终止
【发布时间】:2013-09-10 18:59:23
【问题描述】:

我已对此进行了搜索,但找不到任何特定于该错误或如何解决该错误的信息。

我们在代码中不同位置的不同计算机上间歇性地收到此错误。

以下是错误:

计算机 1:

Application: propane.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Runtime.InteropServices.SEHException
Stack:
   at SSS.Base.FastTrans.PrintReceipt.MakeString()
   at SSS.Base.FastTrans.PrintReceipt.PrintIt()
   at SSS.Base.FastTrans.CCPayment.PrintReceipt()
   at SSS.Base.FastTrans.CCPayment.BottomPanelEnabled()
   at SSS.Base.FastTrans.CCPayment.btnContinue_Click(System.Object, System.EventArgs)
   at System.Windows.Forms.Control.OnClick(System.EventArgs)
   at System.Windows.Forms.Button.OnClick(System.EventArgs)
   at System.Windows.Forms.Button.OnMouseUp(System.Windows.Forms.MouseEventArgs)
   at System.Windows.Forms.Control.WmMouseUp(System.Windows.Forms.Message ByRef, System.Windows.Forms.MouseButtons, Int32)
   at System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.ButtonBase.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Button.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr, Int32, IntPtr, IntPtr)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
   at System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr, Int32, Int32)
   at System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
   at System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
   at System.Windows.Forms.Application.RunDialog(System.Windows.Forms.Form)
   at System.Windows.Forms.Form.ShowDialog(System.Windows.Forms.IWin32Window)
   at SSS.Common.BaseScreen.DynamicallyLoadScreen(System.String, System.String, SSS.Common.BaseScreen, Boolean)
   at SSS.Common.BaseScreen.LoadNewScreen(ScreenOptions, SSS.Common.BaseScreen)
   at SSS.Base.CustomerInquiry.CmdPaymentClick(System.Object, System.EventArgs)
   at System.Windows.Forms.Control.OnClick(System.EventArgs)
   at System.Windows.Forms.Button.OnClick(System.EventArgs)
   at System.Windows.Forms.Button.OnMouseUp(System.Windows.Forms.MouseEventArgs)
   at System.Windows.Forms.Control.WmMouseUp(System.Windows.Forms.Message ByRef, System.Windows.Forms.MouseButtons, Int32)
   at System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.ButtonBase.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Button.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr, Int32, IntPtr, IntPtr)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
   at System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr, Int32, Int32)
   at System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
   at System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(System.String[])
   at Sss.My.MyApplication.Main(System.String[])

计算机 2:

Application: propane.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Runtime.InteropServices.SEHException
Stack:
   at SSSObjectLibrary.VerifySalesAndService.VerifySASLibrary(System.String)
   at SSS.Base.CustomerInquiry.CmdServiceOrderClick(System.Object, System.EventArgs)
   at System.Windows.Forms.Control.OnClick(System.EventArgs)
   at System.Windows.Forms.Button.OnClick(System.EventArgs)
   at System.Windows.Forms.Button.OnMouseUp(System.Windows.Forms.MouseEventArgs)
   at System.Windows.Forms.Control.WmMouseUp(System.Windows.Forms.Message ByRef, System.Windows.Forms.MouseButtons, Int32)
   at System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.ButtonBase.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Button.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr, Int32, IntPtr, IntPtr)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
   at System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr, Int32, Int32)
   at System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
   at System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(System.String[])
   at Sss.My.MyApplication.Main(System.String[])

这是由两台计算机作为第二条消息发出的:

Faulting application name: propane.exe, version: 1.0.0.0, time stamp: 0x51ffc85e
Faulting module name: clr.dll, version: 4.0.30319.1008, time stamp: 0x517a1be7
Exception code: 0xc0000006
Fault offset: 0x0004a0c8
Faulting process id: 0xe80
Faulting application start time: 0x01cea9b048cb2d9d
Faulting application path: I:\RPG\vblib\propane.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: c4a07f4d-1631-11e3-a5f3-1078d270d332

这些来自两个不同办公室的两台不同计算机。我该如何解决这个问题?我们有一个“假设”的包装器来捕获应用程序中所有未处理的错误,并且它在这一点上没有遗漏任何东西。这让我更加困惑,它是如何被捕获的。

有什么建议吗?

【问题讨论】:

  • 我不能告诉你太多,但如果我理解,那么这可能是因为你的 SEH 例程中发生了内部异常。内部异常是 SEH 例程忙于处理时发生的异常有一个先前捕获的异常。尽管实现了 SEH 例程,但内部异常可能是此类错误消息的原因。例如,如果一个 FileNotFoundException 被抛出并被 SEH 例程很好地接收,并且在以某种方式处理 IOException 时发生。简要说明见here。

标签: c# .net error-handling


【解决方案1】:

错误的应用程序路径:I:\RPG\vblib\propane.exe

这可能是异常详细信息中最重要的提示。异常代码 (0xc0000006) 是一个非常低级的 Windows 错误,STATUS_IN_PAGE_ERROR,“由于 I/O 错误,未将所需数据放入内存”。当操作系统需要从分页文件或内存映射文件中检索数据而无法读取该文件时,就会发生这种情况。

鞋子合适,驱动器号不寻常,通常用于映射到网络共享。 .NET 程序集作为内存映射文件加载,其中的元数据和 MSIL 根据抖动的需要从文件中动态加载,以便为程序集中的方法生成代码。

换句话说,客户使用的网络不够可靠。当网络连接断开时程序崩溃。当然,除了强烈建议客户使用本地安装的应用程序外,您对此无能为力。 ClickOnce 非常适合。

【讨论】:

    【解决方案2】:

    SEHException 类处理从非托管代码引发但尚未映射到另一个 .NET Framework 异常的 SEH 错误。所以你应该检查你的本机代码而不是 C# 代码

    【讨论】:

      猜你喜欢
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      相关资源
      最近更新 更多