C# 应用程序错误

C# 应用程序错误,c#,error-handling,C#,Error Handling,我最近发现生产中的IIS worker进程每周崩溃2-3次。我在异常日志中注意到,异常是由于未处理的异常引起的。我调查发现Global.asax没有服务器.转接呼叫 然后我在谷歌上搜索了一下,似乎最好使用Response.Redirect。这是真的吗,我对这件事的评论总是褒贬不一 void Application_Error(object sender, EventArgs e) { // Code that runs when an unhandled erro

我最近发现生产中的IIS worker进程每周崩溃2-3次。我在异常日志中注意到,异常是由于未处理的异常引起的。我调查发现Global.asax没有服务器.转接呼叫


然后我在谷歌上搜索了一下,似乎最好使用Response.Redirect。这是真的吗,我对这件事的评论总是褒贬不一

    void Application_Error(object sender, EventArgs e)
    {
        // Code that runs when an unhandled error occurs
        if (null != Context && null != Context.AllErrors)
            System.Diagnostics.Debug.WriteLine(Context.AllErrors.Length);

        //bool isUnexpectedException = true;
        HttpContext context = ((HttpApplication)sender).Context;

        Exception ex = context.Server.GetLastError();
        if (ex.InnerException != null)
            ex = ex.InnerException;

        LogManager.ExceptionHandler(ex);

        Server.Transfer("GeneralError.aspx");
    }

这取决于您是否希望用户看到“重定向”。就我个人而言,我会使用Response.Redirect

请查看以下关于两者差异的答案:

“这是真的吗,我一直对此有各种各样的评论”什么评论?使用
Response.Redirect()
是否使应用程序按您希望的方式工作?如果另一个调用在
Global.asax
hooks中不可用,您甚至可以选择吗?还有,您所说的“Global.asax没有服务器转移调用”是什么意思。您当然可以从global.asax文件执行server.transfer。所以,我没有看到这里的实际问题。根据您的目标,使用
Server.Transfer
Request.Redirect