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

时间:2009-03-13 07:30:19

标签: c# .net httphandler

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

例如,如果我为谓词设置了Http Handler =“(通配符)”path =“(通配符).txt”

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

任何想法?

2 个答案:

答案 0 :(得分:2)

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

在这个使用context.Response.TransmitFile的特定情况下,你应该考虑设置Response内容类型,charset和缓存控制头,例如: -

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静态内容处理程序将要执行的操作。

答案 1 :(得分:1)

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

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