2010-03-01 20 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