0

有没有办法让 Http 处理程序将请求通过管道备份到 IIS 6 并让它处理请求?

例如,如果我为 verb="(wildcard)" path="(wildcard).txt" 设置了一个 Http 处理程序

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

有任何想法吗?

4

2 回答 2

2

你的问题的答案是否定的。这就是 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 静态内容处理程序将执行的操作。

于 2009-03-13T08:25:50.747 回答
1

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

您可能希望完全避免它,并让链接指向不同的文件名。通过这种方式,您可以从 IIS 中获得所有您想要的东西——尤其是恢复下载。

于 2009-03-13T07:36:20.273 回答