在应用程序池启动时初始化 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
我在网上搜索了一天多,但没有找到我需要的东西。
我正在使用 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