.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获得所需的所有内容 – 特别是恢复下载。