首页 > 解决方案 > ASP.NET Web 应用程序 Application_Start 未在 IIS 中调用

问题描述

我有一个在 IIS 8 上运行的 ASP.NET Visual Basics Web 应用程序,它需要在 Global.asax 中调用 Application_Start 以初始化多个变量。但是,据我所知,该方法永远不会通过远程调试或日志记录被调用。该应用程序在经典模式下运行。

如果我在 Visual Studio 上本地运行它,我发现它可以工作

标签: asp.netvb.netiisglobal-asax

解决方案


Application poolwithClassic mode对此功能没有影响。在我这边, application_Start 事件正常工作。
请确保App_global.asax.dll位于 BIN 文件夹中。我们可以清理、重建项目并再次部署它。此外,在 Application_start 事件期间,我们最好不要写入 IIS 日志或写入/修改数据库,这通常会导致权限问题,这似乎不起作用。
此外,您可以使用 IIS 日志来验证结果。

  public class Global : System.Web.HttpApplication
    {
        public static int a = 34;
        protected void Application_Start(object sender, EventArgs e)
        {
            a = a + 45;
        }
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            Response.AppendToLog("Application BeginRequest...."+a.ToString());
        }
}

这将在 IIS 日志中生成一行记录。

2020-08-26 05:49:10 ::1 POST /WebForm1.aspx Application+BeginRequest....79 8001 - vabqia969VM Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36 +(KHTML,+like+Gecko)+Chrome/84.0.4147.135+Safari/537.36 http://localhost:8001/WebForm1.aspx 200 0 0 3

请参考以下链接进行故障排除。
Application_start 不工作


推荐阅读