C# .net HttpHandler通过管道将请求传递给IIS6

C# .net HttpHandler通过管道将请求传递给IIS6,c#,.net,httphandler,C#,.net,Httphandler,Http处理程序是否有办法将请求通过管道传递回IIS 6,并让它处理该请求 例如,如果我为verb=“(通配符)”path=“(通配符).txt”设置了Http处理程序 我有一个名为myunformated.txt的文件,如果没有附加querystring参数,我希望IIS 6将其发送给用户 有什么想法吗?为什么不只是:Response.TransmitFile?-请注意,与Response.WriteFile不同,此文件不会加载整个文件 您可能希望完全避免使用它,并将链接指向不同的文件名。通过

Http处理程序是否有办法将请求通过管道传递回IIS 6,并让它处理该请求

例如,如果我为verb=“(通配符)”path=“(通配符).txt”设置了Http处理程序

我有一个名为myunformated.txt的文件,如果没有附加querystring参数,我希望IIS 6将其发送给用户


有什么想法吗?

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


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

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


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

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

在这个特定的情况下,使用CordEx.Err..TrimeFipe将做这个技巧,尽管您应该考虑设置响应内容类型、字符集和缓存控制头,如:-< /P>

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

您的问题的答案是否定的。IIS7的集成管道实现了这一点,但它在IIS6上不可用

在这个特定的情况下,使用CordEx.Err..TrimeFipe将做这个技巧,尽管您应该考虑设置响应内容类型、字符集和缓存控制头,如:-< /P>

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静态内容处理程序的功能几乎相同。

像上次修改的指令这样的功能如何?您可以将其作为标题返回,但我明白您为什么要避免它(IIS还可以做其他重要的事情)。。。使用不同的文件名完全避免它怎么样;)像last modified指令这样的事情呢?您可以将其作为标题返回,但我明白为什么要避免它(iis还可以做其他重要的事情)。。。使用不同的文件名完全避免它怎么样;)如果.TransmitFile的目的是将文件直接写入输出流,并避免将其缓冲到内存中,那么缓存结果是否与此目标不符?@John:不。虽然缓存将使用内存,但它只使用可以轻松节省的内存。如果其他地方需要内存,则项目将从缓存中删除服务器端缓存。传输不会延迟,直到所有内容都加载到内存中。如果.TransmitFile的目的是将文件直接写入输出流并避免将其缓冲到内存中,那么缓存结果是否与该目标不符?@John:不。虽然缓存将使用内存,但它只使用可以轻松节省的内存。如果其他地方需要内存,则项目将从缓存中删除服务器端缓存。传输不会延迟,直到所有内容加载到内存中。