【问题标题】:Differentiate static file and asp.net pages in httpmodule - IIS7区分httpmodule中的静态文件和asp.net页面 - IIS7
【发布时间】:2011-05-20 07:56:40
【问题描述】:

在 IIS7 集成模式下,特别是在 ASP.NET MVC 和 .NET4 中,所有模块都针对所有请求运行。 runAllManagedModulesForAllRequests="true"。让 runAllManagedModulesForAllRequests="false" 让我头疼,并且对此有太多问题,直到我感到困惑。

所以为了简单起见,只要让我的模块接受所有请求,包括静态文件,但在像 BeginRequest 这样的模块中,我只想处理它不是静态文件。如何在模块中过滤或检查这个条件?

【问题讨论】:

    标签: asp.net-mvc-3 iis-7 httpmodule integrated-pipeline-mode


    【解决方案1】:

    这并不能完全回答您的问题,但由于没有其他人回答,我有可能可能成为解决方案的一部分。

    如果你将你的模块分成两部分,一个用于托管处理程序请求,一个用于其他所有内容,那么在你添加“托管处理程序请求”模块的 web.config 中,你可以添加属性 preCondition="managedHandler ”。所以它看起来像这样:

        <system.webServer>
          <modules>
            <add name="DynamicRequestModule" type="..." preCondition="managedHandler" />
            <add name="StaticRequestModule" type="..." />
    

    鉴于此配置,“DynamicRequestModule”模块将仅在请求具有托管处理程序的资源时执行。

    【讨论】:

    • 好吧,也许你是对的,但我现在无法测试它。我上次所做的,在 BeginRequest 中检查 URL 是否包含要忽略的图像、javascript 或 css 文件扩展名。因为不是一个正确的解决方案,但它有效。
    猜你喜欢
    • 2010-11-02
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    相关资源
    最近更新 更多