2012-06-07 65 views
1

我現在面臨一個問題: 我做想做的事網址與ASP.Net404處理 - 本地ASP.Net(C#4)和遠程服務器(活)之間的差異

改寫

它完美使用我的本地設置,但一旦在服務器上無法按預期工作。

本地

請求/unavailable-file.aspx在的Application_Error(Global.asax.cs中)變得好,然後被重定向到/404.aspx 請求/不可用的隨機文件夾或任何其他文件中的的Application_Error(Global.asax.cs中)變得好,然後被重定向到/404.aspx

遠程 到.aspx文件的任何請求都在的Application_Error 每隔被獲取請求(.jpg,文件夾等)不會是貓高等教育委員會在所有扔進默認的404頁面錯誤

我的問題:

昨天我安裝我的新網站的服務器和我看到的Application_BeginRequest甚至沒有解僱我所有的服務器上,當它是每次(對於請求的每個文件或文件夾)在本地計算機上(使用visual studio)。 我不得不創建一個HttpModule,現在我成功地獲得了事件觸發... 但不是非.aspx請求。

一切似乎都綁定在URL上:當它以.aspx結尾時,它被正確地管理,當它沒有時,它根本就不被管理。

即使對於非aspx頁面,我該如何捕獲每個Application_BeginRequest?

我有我的web.config中嘗試將404錯誤強行進入我的頁面:

<customErrors mode="On" 
    defaultRedirect="404.aspx"> 
    <error statusCode="404" redirect="404.aspx"/> 
</customErrors> 

但正如我所說的,只要它不具有的.aspx它沒有被重定向結束的請求我得到了默認的ASP.Net 404錯誤。

(我的主機是「reliablesite」如果它可以幫助,我有404錯誤指着我404.aspx頁面管理器(共享託管)裏面的設置,它不會改變任何東西)

我希望一切都能像本地模式一樣工作。

如果您對如何解決該問題有任何建議,請告訴我。

回答

0

,當你有一個共享的環境中,該問題的解決方案在這裏給出:

  1. 活動的ASP。網綜合管線在共享環境設置(可用,因爲IIS 7的事情)
  2. 這個添加到Web.config:

    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
        <add name="RedirectHttpModule" type="RedirectHttpModule" /> 
    </modules> 
    </system.webServer> 
    

凡RedirectHttpModule是一個自定義模塊處理的Application_BeginRequest例如。

「runAllManagedModulesForAllRequests」表示將爲所有對Web應用程序的請求調用所有託管模塊。

1

在開發Web服務器中,每個請求都由aspx引擎處理,因爲這是全部。在實時服務器中,不同的文件類型由不同的引擎處理。

爲了讓實時服務器爲每個請求使用aspx引擎,必須在IIS中更改網站的配置。

相關:ASP.net web.config doesn't catch all 404's

+0

謝謝。這就是原因......現在我可能不得不寫一個模塊,就像在這個鏈接上解釋的一樣:http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-集成流水線/ –

相關問題