2010-03-01 98 views
2

我有一个ASHX处理程序或一个ASPX页面(在两种情况下都会出现问题)。 Web客户端发送包含If-None-Match和/或If-Modified-Since标题但是context.Request.Headers.Get(“If-None-Match”)或context.Request.Headers.Get(“If -Modified-Since“)在处理程序中为null。IIS删除If-None-Match和If-Modified-Since标头

相同的脚本在我的本地开发机的工作原理,但它并没有在网上机工作(都在2008年赢得运行IIS7,.NET 3.5)

回答

0

您可以使用第三方模块创建副本在执行apsx页面之前的这些标题。 例如与赫利猿(http://www.helicontech.com/ape)这些规则可能会做的伎俩:

SetEnvIf If-None-Match (.*) e-if-none-match=$1 
SetEnvIf If-Modified-Since (.*) e-if-modified-since=$1 

RequestHeader set My-If-None-Match %{e-if-none-match}e 
RequestHeader set My-If-Modified-Since %{e-if-modified-since}e 

基本上他们得到的头,并设置与MY-前缀的新的问题。这只有在IIS不在Ape之前删除头文件时才有效。

+0

谢谢,但任何想法为什么IIS删除这些头? – user283620 2010-03-07 05:49:48

+0

我注意到,当我从本地计算机访问处理程序时,头部可用,但是当我从远程计算机访问处理程序时,IIS会将其删除。 此外,我试图创建一个IHttpModule,但它没有帮助,因为在调用HttpApplication.BeginRequest之前,头已经被删除。 – user283620 2010-03-07 06:57:38

+0

我建议你在iis.net论坛上提问。我真的不知道为什么IIS删除这些头文件。这很有可能,因为我确信IIS的低级驱动程序在所有模块之后都添加了Content-Length标头。服务器标题也是一样。 – Slava 2010-03-10 10:44:31