.net HttpHandlers将管道传递请求到IIS6

有没有办法让Http Handler将请求传递回IIS 6并让它处理请求?

例如,如果我有一个Http Handler设置为verb =“(通配符)”path =“(通配符).txt”

我有一个名为myunformated.txt的文件,如果它没有连接查询字符串参数,我希望IIS 6将它发送给用户。

有任何想法吗?

你的问题的答案是否定的。 这就是IIS7的集成管道实现的目标,但它在IIS6上不可用。

在这个特定的情况下,使用context.Response.TransmitFile会做的伎俩尽管你应该考虑设置响应内容类型,字符集和缓存控制标题,如: –

HttpResponse Response = context.Response Response.ContentType = "text/plain"; Response.CharSet = "Windows-1252"; Response.AddFileDependency(filePath); // Set additional properties to enable caching. Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetValidUntilExpires(true); Response.TransmitFile(filePath); 

这几乎与IIS静态内容处理程序将要执行的操作重复。

为什么不呢:Response.TransmitFile? – 请注意,与Response.WriteFile不同,这个不会加载整个文件。

您可能希望完全避免它,并使链接指向不同的文件名。 通过这种方式,您可以从IIS获得所需的所有内容 – 特别是恢复下载。