我有一个简单的 HTTPModule,它可以进行一些自定义会话状态管理。
public void Init(HttpApplication context)
{
context.AcquireRequestState += new EventHandler(ProcessBeginRequest);
ActivityLogger.LogInfo( DateTime.UtcNow.ToLongTimeString() + " In Init " + HttpContext.Current.Request.Url.AbsoluteUri);
}
和
public void ProcessBeginRequest(object sender, EventArgs e)
{
HttpApplication application = sender as HttpApplication;
ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In ProcessBeginRequest ");
if (application != null)
{
string requestURL = application.Context.Request.Url.ToString();
ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In ProcessBeginRequest " + requestURL);
}
return;
}
当我用断点运行这段代码时,我看到这个模块甚至被像图像、js 和 css 这样的静态文件调用。有没有人经历过这个?我认为 HTTP 模块只是连接到 http 管道中的事件,用于 asp.net 页面。他们是否也与静态资源挂钩?还是只有卡西尼?
环境:VS2008 - 卡西尼服务器
PS:我确实在我们的沙箱中使用 Win2k8 IIS7 尝试过(有点新),并尝试将其写入日志文件(因为我们没有 VS),但无法写入日志文件。确信它有一些写权限问题。谁能指出一些资源,告诉我在 W2k8 中使用 IIS7 运行 ASP.net 时如何设置目录的写权限
Edit1:我知道使用集成管道将扩展 http 管道用于静态和托管资源,例如 http://aspnet.4guysfromrolla.com/articles/122408-1.aspx和http://learn.iis.net/page.aspx /243/aspnet-integration-with-iis7/
我们在产品中使用经典管道。但仍然有兴趣了解其他人的经历。
问题2:在集成模式下使用IIS7,会降低性能吗?假设您有几个模块与管道连接,性能影响有多大?如果有人能指出为此进行的一些基线研究,那就太好了。