JS,图片和CSS过得去的HttpModule截获
-
22-09-2019 - |
题
我有一个简单的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集成与 - IIS7 /
我们使用的是在我们的督促经典的管道。但还是想知道别人都经历过。
问题2:在集成模式下使用IIS7,将它降低性能?说你有几个模块与管道挂钩的,多少是对性能的影响?将是很好,如果有人可以点我这个做了一些基础研究。
解决方案
看起来像有一种方法可以做到这一点
HTTP://learn.iis。净/ page.aspx / 121 / IIS-70-模块-概览/#禁用
设置preCondition="managedHandler"
和<modules runAllManagedModulesForAllRequests="false" />
会做的伎俩
请注意,以自: http://code.google.com/p/talifun-web/wiki/ StaticFileHandler 需要探索此StaticFileHandler
的引用:
http://learn.iis.net/page.aspx/244/how-to-take-advantage-of-the-iis7-integrated-pipeline/
其他提示
是,它会被称为用于任何类型的文件。
这是典型的这些模块来过滤掉你是在为前没有兴趣什么的。通过检查HttpContext.Request.Url.AbsolutePath是否包含 '/ _layouts' 的SharePoint下。