我有一个.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 - 从中我无法找到解决问题的答案。
答案 0 :(得分:1)
如果有人有兴趣,我发现了问题。这是因为我试图处理未注册为MIME类型的文件扩展名。使用IIS声明此MIME类型解决了该问题。