C# .NET运行时错误导致进程崩溃!但是有';没有未处理的异常-为什么?CLR错误?

C# .NET运行时错误导致进程崩溃!但是有';没有未处理的异常-为什么?CLR错误?,c#,.net,C#,.net,我有一个全天候运行的.Net进程,每周崩溃一到两次。我已将AppDomain.CurrentDomain.UnhandledException事件连接到log4net,并且该事件从未被触发!记录任何东西都会导致进程崩溃!这看起来像是一个.Net运行时/CLR错误,因为我刚刚在事件日志中收到一条消息,上面写着“.Net运行时2.0错误” 我正在运行.NET3.0SP1 能不能请一些人帮我解决这个问题 事件日志消息: .NET运行时2.0错误类型:错误事件Id:1000 事件日志描述:故障应用程序a

我有一个全天候运行的.Net进程,每周崩溃一到两次。我已将AppDomain.CurrentDomain.UnhandledException事件连接到log4net,并且该事件从未被触发!记录任何东西都会导致进程崩溃!这看起来像是一个.Net运行时/CLR错误,因为我刚刚在事件日志中收到一条消息,上面写着“.Net运行时2.0错误”

我正在运行.NET3.0SP1

能不能请一些人帮我解决这个问题

事件日志消息: .NET运行时2.0错误类型:错误事件Id:1000


事件日志描述:故障应用程序appName.exe,版本0.0.0.0,戳记4ca5d33d,故障模块mscorwks.dll,版本2.0.50727.3607,戳记4add5446,调试?0,错误地址0x0010724e。

尝试在应用程序的入口点放置全局Try//catch

希望能有帮助


这里讨论的是这个错误:

也许这是你的在错误消息2下查看,也包括一个热修复程序,这可能是你的问题,也可能不是你的问题

我相信StackOverflowException不会像这样被捕获,因为代码无处运行。对于经常发生的事件,这可能是一个很好的选择—您可能需要检查代码中是否存在无限循环/递归。

因此,有一些有趣的反馈,但也值得一提的是,不同的应用程序类型可能会在不同的事件处理程序上引发异常

对于Windows服务,我们应该安全处理

static void Main (string[] args) 
{
    AppDomain.CurrentDomain.UnhandledException +=
        CurrentDomain_UnhandledException;
}
对于WinForms应用程序,我们还应该处理其他未处理的事件处理程序

static void Main (string[] args) 
{
    AppDomain.CurrentDomain.UnhandledException +=
        CurrentDomain_UnhandledException;
    System.Windows.Forms.Application.ThreadException +=
        Application_ThreadException; 
}
对于WPF应用程序,为GUI异常提供了一个调度程序事件

static void Main (string[] args) 
{
    AppDomain.CurrentDomain.UnhandledException +=
        CurrentDomain_UnhandledException;
    Application.Current.DispatcherUnhandledException +=
        Application_DispatcherException; 
}
同样值得重复的是,任何未处理的异常通常会导致程序终止。但是,处理这些事件使我们有机会报告和识别根本错误

其他可能有帮助的链接


这就是消息的范围吗?通常会有类似“错误应用程序foo.exe…”的信息。NET 3.0和.NET 3.5实际上运行的是.NET 2.0,仅供参考,我怀疑这是CLR。更有可能的是某段代码失败了。您可以从事件日志中发布详细信息吗?事件日志中是否有此错误的描述?它是什么类型的应用程序?WPF?WinForm?Windows服务?有COM互操作吗?事件查看器的“说明”内容?如果应用程序是单线程的,那么这是一个很好的建议。不幸的是,线程外抛出的未处理异常(由多线程应用程序中的错误子线程引发)将不会被捕获-通常会导致程序终止。