2010-07-19 37 views
6

我發現,一個特定的Web應用程序請求的WebResource.axd正在返回一個完全空白頁。 (複製和粘貼在completley空響應文檔鏈接到一個新的瀏覽器窗口中的結果)診斷爲什麼WebResource.axd的請求是空

IIS日誌顯示該請求WebResource.axd的成功(HTTP狀態代碼200)

應用程序本身是複雜的所以它似乎可能是應用程序正在做的事情導致這一點,但我不知道是什麼。

我可以採取什麼額外的調試步驟,制定出爲什麼這些請求失敗,我應該在哪裏尋找下應用程序特定的行爲可能會以這種方式影響WebResource.axd的地方呢?

事情我至今嘗試過:

  • 在IIS中創建一個新的虛擬目錄指向同一個目錄中給出了相同的結果(空的WebResource.axd文件)
  • 創建一個完全新的indepdent空白頁並把它放在這個目錄中給出了相同的結果。
  • 如果我在IIS對不同的文件夾指向創建一個新的虛擬目錄,然後在空白頁按預期工作。
  • 在工作/破碎目錄之間交換web.config文件似乎沒有影響。

這是Windows XP機器運行IIS 5.1

回答

4

事實證明,問題是,我是在Global.asax中Application_PreRequestHandlerExecute方法應用的HttpResponse過濾器。我將這個過濾器一般地應用於所有請求 - 即使過濾器保留WebResouce.axd的內容不變,這仍然會導致問題。

以下鏈接幫了我,並描述得更詳細:

解決的辦法是跳過應用爲WebResouce.axd過濾器。

0

我不使用Application_PreRequestHandlerExecute,而是在Application_BeginRequest中添加OutputFilterStream。這導致與WebResource.axd響應返回狀態代碼200相同的問題,但是一個空的響應。