1

尝试通过网络访问程序集时突然发生SEHException 。应用程序已部署在服务器(Windows server 2003)中,并在.NET Framework 1.1windowsC#应用程序中运行。它已经部署并运行了很长时间。下面是异常的堆栈跟踪

*'System.Runtime.InteropServices.SEHException' 发生并被捕获。-------------------------------------------------- ----------------------------------------- 2013 年 6 月 13 日 12:41: 19 类型:System.Runtime.InteropServices.SEHException mscorlib
版本=2.0.0.0 Culture=neutral PublicKeyToken=b77a5c561934e089 消息:外部组件已引发异常。来源:mscorlib 帮助链接:错误代码:-2147467259 数据: System.Collections.ListDictionaryInternal Stack Trace:在 System.Reflection.Assembly.GetResource(String resourceName UInt64& length StackCrawlMark& stackMark Boolean skipSecurityCheck) 在 System.Reflection._GetResource(String resourceName UInt64& length StackCrawlMark& stackMark Boolean skipSecurityCheck) 在 System.Reflection .Assembly.GetManifestResourceStream(字符串名称
System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo 文化布尔 createIfNotExists 布尔 tryParents) System.Resources.Resources.ResourceManager.InternalGetResourceSet(CultureInfoculture) Boolean createIfNotExists Boolean tryParents) at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfoculture Boolean createIfNotExists Boolean tryParents) at System.Resources.ResourceManager.GetObject(String name CultureInfoculture Boolean wrapUnmanagedMemStream) at System.Resources.ResourceManager.GetObject(String name) at购物车BO。messageLabel_Paint(对象发送者 PaintEventArgs e)
在 System.Windows.Forms.Control.OnPaint(PaintEventArgs e) 在 System.Windows.Forms.Label.OnPaint(PaintEventArgs e) 在 System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e
Int16 layer Boolean disposeEventArgs) 在 System.Windows .Forms.Control.WmPaint(Message& m) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.Label.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage (Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd
Int32 msg IntPtr wparam IntPtr lparam)*

关闭并重新启动应用程序后未出现此问题。我们现在收到此问题的报告近 200 多次,我们需要解决它。

4

1 回答 1

0

在我们的例子中,这个问题是由以下原因引起的:

  1. 应用程序从远程计算机的网络共享启动
  2. 客户端计算机在应用程序运行时进入睡眠状态
  3. 网络共享上的应用程序已更新为新的 exe 文件
  4. Cient 计算机已恢复。应用程序仍在使用旧的(缓存在内存中)版本的 exe 运行。之后,应用程序中的某些操作发起了调用Assembly.GetManifestResourceStream,导致SEHException

我们通过重新组织应用程序来解决此问题,以便不会发生这种情况。

于 2015-12-18T13:47:21.647 回答