PreApplicationStartMethodAttribute异常时的调用堆栈信息:

  Global.asax的Application_Start事件处理器的调用方式则不同,ASP.NET采用了反射调用,当异常发生只保留了内部异常,我们看不到调用堆栈(不信的话,自己去试试)。

  没关系,既然ASP.NET不告诉我们调用堆栈信息,我们自己也可以去取,请看下面的代码:

    void Application_Start() 
    { 
        System.Diagnostics.StackTrace stack = new System.Diagnostics.StackTrace(); 
        System.IO.File.WriteAllText("h:\Application_Start_stack.txt", stack.ToString()); 
    }

  再打开文件看一下吧。

  说明:Global.asax的Application_Start事件处理器还有几种等效的方法:

    // 这二个方法都可以实现与Application_Start(object sender, EventArgs e)相同的行为。 
    
    void Application_OnStart() 
    { 
    } 
    
    void Application_Start() 
    { 
    }