.NET Response.Filter不会使用IIS7调用Write()

时间:2012-04-16 13:23:20

标签: .net iis-7 filter ihttpmodule

我有一个.NET IHttpModule,它添加了一个响应过滤器并对所请求的文件进行了一些修改。但是,虽然这可以通过Visual Studio工作,但我无法通过IIS使这项工作正常工作。使用II7,v2.0.50727框架。

响应过滤器被添加到IHttpModule的BeginRequest事件中......

context.Response.Filter = new myFilter(context);

调用以下内容......

public myFilter(HttpContext myContext)
{
    if (myContext.Response.Filter == null)
        throw new ArgumentNullException("ResponseStream");
    this._responseStream = myContext.Response.Filter;
    _context = myContext;
}

我可以看到响应过滤器的Flush()和Close()方法被调用但是我的断点在Write()中永远不会被命中。

有人可以帮忙解释为什么没有调用Write()?

我的web.config已正确设置为IIS7和Visual Studio注册模块(模块和httpsodule等)

这正是这里发现的问题 - ASP.NET Response.Filter does not call Write - 从中​​我无法找到解决问题的答案。

1 个答案:

答案 0 :(得分:1)

如果有人有兴趣,我发现了问题。这是因为我试图处理未注册为MIME类型的文件扩展名。使用IIS声明此MIME类型解决了该问题。