【问题标题】:JS,Images and CSS getting intercepted by HTTPModuleJS、图像和 CSS 被 HTTPModule 拦截
【发布时间】:2010-01-21 20:42:54
【问题描述】:

我有一个简单的 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.aspxhttp://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

我们在产品中使用经典管道。但仍然有兴趣了解其他人的经历。

问题2:在集成模式下使用IIS7,会降低性能吗?假设您有几个模块与管道连接,性能影响有多大?如果有人能指出为此进行的一些基线研究,那就太好了。

【问题讨论】:

    标签: asp.net iis-7 httpmodule cassini ihttpmodule


    【解决方案1】:

    【讨论】:

    • 在 IIS6 中有没有很好的方法来实现这一点?我知道这与问题有点无关,但对于像我这样登陆这里的人来说,这将是一个很好的参考,因为仅是问题标题。
    • 有没有人通过 Talifun.Web StaticFileHandler 获得缓存?
    【解决方案2】:

    是的,任何类型的文件都会调用它。

    这些模块通常会过滤掉您不感兴趣的内容。通过检查 HttpContext.Request.Url.AbsolutePath 是否包含 SharePoint 下的“/_layouts”。

    【讨论】:

    • 有没有办法配置模块,使它们只连接到特定扩展的管道(如 aspx 或 asmx 或我的自定义 ashx)?
    • 此答案特定于 ASP.NET 开发 Web 服务器(Cassini)——您的问题提到了 IIS7 和 Cassini。 Cassini 会将所有请求路由到任何 HttpModules。请注意,这是与 IIS6 或 IIS7 不同的行为(需要不同的配置才能在每个上获得相同的行为)
    猜你喜欢
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 2019-11-17
    相关资源
    最近更新 更多