2011-06-10 98 views
3

我有一个在Windows Server 2008 R2上运行的.NET 4应用程序,我使用一个单独的运行进程来管理其生命周期(即检测开启/意外关闭/重新启动)。这对于典型情况很好。但是,当应用程序抛出一个异常时,Windows会打开调试窗口来调试应用程序。我只是希望应用程序崩溃,所以进程运行器可以检测到崩溃并相应地进行管理。让.Net应用程序在崩溃时关闭

如何让应用程序关闭异常?

+0

你知道应用程序崩溃的条件吗,如果是的话你有没有写出适当的异常处理? – Coder323 2011-06-10 04:15:45

+0

不要在服务器上安装Visual Studio。 – 2011-06-10 06:10:07

回答

4

Application.ThreadException和处理程序中添加处理程序,记录事件,然后很好地退出。

此外,还向AppDomain.CurrentDomain.UnhandledException添加事件处理程序。

Unhandled Exceptions MSDN

编辑:关于处理标记去掉位..感谢亚历克斯

0

您应该添加一个全球性的异常处理程序或一个try/catch清理资源,记录错误并正常关闭应用程序。

+0

我认为这可能会对性能造成破坏性影响,尽管... – Pedery 2011-06-10 04:27:38

+0

@Pedery您能详细说明一下吗? – 2011-06-10 05:08:21

+0

当然!取决于您的应用程序是否对性能至关重要。我最后一个工作是3D CAD程序,每个鼠标移动都会产生大量计算结果。为了让* try *子句跨越性能关键块,显然会对性能产生重大影响。我们的代码被剥夺了所有这一切。 – Pedery 2011-06-10 13:05:35

1

添加此行将会阻止显示“调试窗口”。

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException); 
+0

此设置仅影响Windows窗体例外。 – 2011-06-10 04:39:49