在应用程序池启动时初始化 ASP.NET Web 应用程序

Initializing ASP.NET Web application on application pool start

我在网上搜索了一天多,但没有找到我需要的东西。

我正在使用 HttpHandlers 和 HttpModules 开发 IIS Web 应用程序。我需要首先 运行 初始化应用程序(应用配置)。但我不想使用 global.asax.cs,因为我不希望实现在其文件夹中有一个 global.asax 文件(最多 web.config)。

如何在初始化应用程序池时运行一些代码?

您可以使用程序集级属性 PreApplicationStartMethodAttribute 使您的启动代码 运行 在 ASP.NET 管道的早期。

namespace MyWebService
{
     public class MyHttpHandler: IHttpHandler, IDisposable
     {

            public static void StartUp()
            {
                //Application Startup Code;
            }

            public void ProcessRequest(HttpContext context)
            {
                    //Do Something 
            }

            public bool IsReusable { get; private set; }

            public void Dispose(){};

            }
        }
    }
}

并将属性添加到您的 AssemblyInfo.cs

[assembly: PreApplicationStartMethod(typeof(MyWebService.MyHttpHandler), "StartUp")] 

有关 PreApplicationStartMethod 的更多信息:https://msdn.microsoft.com/en-us/library/system.web.preapplicationstartmethodattribute