2012-09-27 46 views
2

我一直在經歷堆棧溢出,但無法找到答案。我可以得到500頁就OK出現這樣的:在mvc3中本地化錯誤500頁

<customErrors mode="On"> 
    <error statusCode="500" 
     redirect="~/500.html"/> 
</customErrors> 

我想要做的是提供基於應用程序的語言頁面的本地化版本。問題是我不想通過我在許多其他帖子中發現的錯誤控制器視圖解決方案,以防萬一在應用程序中出現錯誤(缺少DLL等)。所以我必須提供一個純html頁面,但我需要能夠選擇本地化的頁面,或者指導IIS如何找到它。

有什麼想法?

+0

你這樣做通過Application_Error – VJAI

+0

不,我不能...或者至少,我可以,但我想避免任何涉及C#代碼,並知道是否有可能從web.config解決 – Tallmaris

回答

0

這只是我的頭頂,不能使用URL重寫/重定向規則,它使用瀏覽器定義的Accept-Language重定向到〜/ 500.en-us.html和〜/ 500 .de.html或者你可能有路徑設置?

示例規則在web.config中:

<rule name="HTTP-Language-Error-Redirect" stopProcessing="true"> 
    <match url="^500.html$" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="true"> 
     <add input="{HTTP_ACCEPT_LANGUAGE}" pattern="^([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?$" /> 
    </conditions> 
    <action type="Redirect" url="500.{C:1}.html" redirectType="Found" /> 
</rule> 

我的想法是,redwrite /重定向規則會的工作,因爲它是IIS的程序處理該請求,而不是應用程序代碼的一部分。因此,理論上,如果WebApp由於某種原因而中斷,它仍然可以工作。雖然我的假設可能完全錯誤,但我認爲我會誠實地對待它。