发生了SEHException

时间:2013-06-20 13:55:21

标签: c# windows-applications

尝试访问程序集网络时突然发生 SEHException 。应用程序已部署在服务器(Windows server 2003)中并在.NET Framework 1.1和Windows C#应用程序中运行。它已部署并运行良好很长时间。下面是异常的堆栈跟踪< / p>

  

*'System.Runtime.InteropServices.SEHException'发生并被捕获。   -------------------------------------------------- ----------------------------------------- 06/13/2013 12:41: 19类型:   System.Runtime.InteropServices.SEHException mscorlib
  Version = 2.0.0.0 Culture = neutral PublicKeyToken = b77a5c561934e089   消息:外部组件抛出异常。资源 :   mscorlib帮助链接:ErrorCode: -2147467259 数据:   System.Collections.ListDictionaryInternal Stack Trace:at   System.Reflection.Assembly._GetResource(String resourceName UInt64&amp;   长度StackCrawlMark&amp; stackMark Boolean skipSecurityCheck)at   System.Reflection.Assembly.GetResource(String resourceName UInt64&amp;   长度StackCrawlMark&amp; stackMark Boolean skipSecurityCheck)at   System.Reflection.Assembly.GetManifestResourceStream(String name
  StackCrawlMark&安培; stackMark Boolean skipSecurityCheck)at   System.Reflection.Assembly.GetManifestResourceStream(Type type String   name Boolean skipSecurityCheck StackCrawlMark&amp; stackMark)at   System.Resources.ResourceManager.InternalGetResourceSet(的CultureInfo   culture Boolean createIfNotExists Boolean tryParents)at   System.Resources.ResourceManager.InternalGetResourceSet(的CultureInfo   culture Boolean createIfNotExists Boolean tryParents)at   System.Resources.ResourceManager.InternalGetResourceSet(的CultureInfo   culture Boolean createIfNotExists Boolean tryParents)at   System.Resources.ResourceManager.GetObject(String name CultureInfo   culture Boolean wrapUnmanagedMemStream)at   System.Resources.ResourceManager.GetObject(String name)at   shoppingcartBO.messageLabel_Paint(对象发送者PaintEventArgs e)
  在System.Windows.Forms.Control.OnPaint(PaintEventArgs e)at   System.Windows.Forms.Label.OnPaint(PaintEventArgs e)at   System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e
  Int16层布尔值disposeEventArgs)at   System.Windows.Forms.Control.WmPaint(Message&amp; m)at   System.Windows.Forms.Control.WndProc(Message&amp; m)at   System.Windows.Forms.Label.WndProc(Message&amp; m)at   System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&amp; m)   在System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&amp;   m)在System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd
  Int32 msg IntPtr wparam IntPtr lparam)*

关闭并重新启动应用程序后未发生此问题。我们现在报告这个问题几乎超过200次,我们需要解决它。

1 个答案:

答案 0 :(得分:0)

在我们的案例中,此问题是由以下原因引起的:

  1. 应用程序是从远程计算机的网络共享启动的
  2. 客户端计算机在应用程序运行时进入休眠状态
  3. 网络共享上的应用程序已更新为新的exe文件
  4. 恢复了客户计算机。应用程序仍在使用旧的(内存缓存)版本运行。之后,应用程序中的某些操作启动了Assembly.GetManifestResourceStream的调用,导致SEHException
  5. 我们通过重新组织应用程序来解决这个问题,以便不会发生这种情况。