使用SignalR时如何从管道中删除某个HttpModule?

时间:2014-01-29 13:30:07

标签: iis-7 signalr httpmodule

My SignalR Startup - 类看起来像这样

namespace Website
{
    public sealed class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
        }
    }
}

所以 - 我打算使用默认路由

然后我在web.config中添加了一个模块(对于IIS 6和IIS 7)

<configuration>
    <system.web>
        <httpModules>
            <add name="FooModule" type="FooNamespace.FooModule" />
        </httpModules>
    </system.web>
    <system.webServer>
        <modules>
            <add name="FooModule" type="FooNamespace.FooModule" />
        </modules>
    </system.webServer>
</configuration>

我的处理程序中有一些异常 - 这不是问题所在,但它告诉我,处理程序也在SignalR管道中执行。

那么,location - 标签是什么?

<location path="signalr">
    <system.web>
        <httpModules>
            <remove name="FooModule" />
        </httpModules>
    </system.web>
    <system.webServer>
        <modules>
            <remove name="FooModule" />
        </modules>
    </system.webServer>
</location>

我虽然很高兴...好吧,我仍然在SignalR管道中收到异常。 我甚至启用了FailedRequestTracing,以获取已执行模块的完整列表 - 并猜测...... FooModule仍在显示。

所以,我的问题是:在提供SignalR请求时,如何从管道中删除某些模块?

1 个答案:

答案 0 :(得分:0)

httpModules部分影响所有应用程序,它不会那样工作。

无论哪个处理程序被定向,模块都会针对所有请求运行。

您最好的选择是解决模块中的问题。