1

我有一个 .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 的模块(模块和 httpmodule 等)

这正是在这里找到的问题——ASP.NET Response.Filter 不调用 Write——我无法从中找到解决我问题的答案。

4

1 回答 1

1

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

于 2012-04-17T08:23:53.417 回答