2010-05-31 49 views
4

我們運行鏈接重定向服務,該服務可處理以各種格式引發的鏈接。其中一種格式是追加的目標網址鏈接的末尾,例如Global.asax在IIS7中不會觸發.aspx頁面

http://url.fwd/abcd/http://www.mydomain.com/page.aspx

這是工作在Windows Server 2003/IIS6箱過去兩年,但現在我們試圖轉移到Windows Server 2008/IIS7安裝程序並且不再工作。

我已閱讀關於URL中冒號的問題,但它不會影響不以'.aspx'結尾的頁面。例如,

http://url.fwd/abcd/http://www.mydomain.com/page.php

會重定向罰款。

http://url.fwd/abcd/http//www.mydomain.com/page.aspx

也能正常工作(注意,缺少第二結腸)。儘管是錯誤的URL,但它確實通過我們的URL轉發系統處理,該系統使用自定義404頁面。在舊的系統上,我們遇到了類似的問題,所以在Global.asax> Application_Error中專門編寫了一個方法來處理'.aspx'的情況,並且它工作正常。

在我們的新服務器上,Application_Error永遠不會被Global.asax引發。相反,我得到一個System.NotSupportedException - 「給定路徑的格式不支持」。這個System.NotSupportedException是我們在Global.asax頁面中處理的確切情況,所以它絕對不會被解僱。

我已經改變了在幾個論壇帖子所指示的註冊表項, HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\ ASP.NET VerificationCompatibility = 1 HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \服務\ HTTP |參數AllowRestrictedChars = 1

我試圖改變.aspx的Handler Mappings設置。

我已經嘗試設置應用程序池使用經典模式,而不是集成,但這會導致完全不同的錯誤,靜態內容(如圖像和CSS)根本不顯示。我已經檢查過,在Windows功能中啓用了靜態內容,它是。 在傳統模式下,'.aspx'請求會拋出兩個錯誤的請求錯誤,絕對沒有任何信息。錯誤頁面,我得到的代碼是從字面上

壞請求<HTML> <體>壞請求< /身體> </HTML >

更新:我已經改變了靜態文件處理程序映射到窗體在本頁中發現 http://improve.dk/blog/2006/12/11/making-url-rewriting-on-iis7-work-like-iis6 但是,正如作者正確指出的那樣,這是一種黑客行爲,而不是在IIS7下做事的正確方式。它也只修復了經典模式下的靜態文件問題。 '.aspx'頁面在傳統模式下仍然出現錯誤。

在這一點上,任何想法或意見將不勝感激。

+0

僅供參考:我從來沒有找到解決方案。我們必須恢復使用傳統的ASP頁面來處理所有傳入流量,並刪除以「.aspx」結尾的所有後綴URL,然後將它們傳遞給ASP.NET堆棧。我對這個解決方案非常不滿,但它是我們唯一能夠找到的。 如果任何人有任何想法如何讓這些請求在IIS7 Global.asax發射我很想聽到他們。 – roryok 2010-07-30 14:13:23

+1

就像更新一樣,早在'09我發佈了一個跟蹤我的原始黑客,詳細說明如何使其以正確的方式工作:http://improve.dk/archive/2009/10/14/how-to-do -url-rewriting-on-iis-7-proper.aspx :) – 2011-09-08 22:36:11

回答

7

IIS 7解決方案

在IIS 7中簡單的解決方法是在你的web.config文件中添加的設置來告訴IIS處理通過您的Global.asax事件的所有請求。只需添加或更改本節在你的web.config,使請求:

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
</system.webServer> 
+4

魔法屬性是 .. Helephant 2011-06-30 14:56:53

+1

謝謝Helephant!這正是我正在尋找的。 – abjbhat 2013-04-20 04:14:11

0

就我而言,我發表我的網站在生產想念拷貝到服務器App_global.asax.compiled文件。由於這個原因,沒有激發Global.asax中的事件。

希望anyelse幫助這個提示,我失去了8個小時的追求。