【问题标题】:Bypass existing HttpModule for a http handler为 http 处理程序绕过现有的 HttpModule
【发布时间】:2010-08-11 19:10:38
【问题描述】:

场景: 我有一堆 Web 应用程序,我想通过 http 处理程序为其添加一个简单的 ping 功能。示例:http://myserver/foo/testfolder/ping.me

问题: 对于某些应用程序,由于自定义 HttpModule,这种方法不起作用。这些模块对身份验证或其他一些处理逻辑有一定的依赖性,因此会使请求无效。

我正在尝试找到一种解决方案来让这个 ping 功能正常工作,而无需对现有的 HttpModules 进行任何更改。

【问题讨论】:

  • 请添加一些关于错误的附加信息。我不清楚你到底在问什么。

标签: asp.net httpmodule


【解决方案1】:

HttpModules 与应用程序实例相关联并适用于所有子文件夹。 因此,您无法绕过它。

【讨论】:

    【解决方案2】:

    假设您只想为 ping 处理程序的 URL 禁用 HttpModules,您可以在 web.config 中执行此操作:

    <location path="/url/to/ping/handler">
        <system.web>
            <httpModules>
                <remove name="moduleToRemove1"/>
                <remove name="moduleToRemove2"/>
            </httpModules>
        </system.web>
    </location>
    

    这将仅禁用给定 url 的模块。

    【讨论】:

    • 这不起作用。 http 模块仍在调用中。
    • 是的,除了根配置之外,您似乎无法在任何地方修改 http 模块。我以前从未尝试过,只是假设它们的行为与其他一切一样。您必须在 IIS 中将子文件夹设置为它自己的 Web 应用程序。
    猜你喜欢
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多