2012-02-10 13 views
2

我的網站被配置爲在發生錯誤時顯示自定義HTML頁面。這在IIS和ASP.NET Development Server上都可以正常工作。但是,只要將應用程序部署到Windows Azure,我就可以獲得HTTP 500而不是非ASP.NET-URL。httpErrors config部分在Windows Azure中不起作用

這是相關的web.config截面是什麼樣子:

<httpErrors errorMode="Custom"> 
    <clear /> 
    <error statusCode="404" path="/Public/Error404.html" responseMode="ExecuteURL" /> 
</httpErrors> 

<customErrors defaultRedirect="/Public/Error.html" mode="On"> 
    <error redirect="/Public/Error404.html" statusCode="404" /> 
</customErrors> 

customErrors部分(適用於在結束的.aspx URL)的正常工作。但是,httpErrors部分沒有。儘管Azure的IIS發送500到瀏覽器,它記錄了404:

2012-02-10 13點30分07秒W3SVC1273337584 RD00155D3A1439 10.61.70.39 GET /asdfdsaafds - 80 - 65.52.128.172 HTTP/1.1 Mozilla/4.0 +(compatible; + MSIE + 8.0; + Windows + NT + 6.1; + WOW64; + Trident/4.0; + SLCC2; +。NET + CLR + 2.0.50727; +。NET + CLR + 3.5.30729 ; + NET + CLR + 3.0.30729; + NET4.0C; + NET4.0E) - - 940af2dbd9df4924b87a13878752aee3.cloudapp.net 404 0 2 222 457 218

局部,得到了一個HTTP 500.19用。一些更詳細的信息:

請求的頁面無法訪問,因爲該頁面的相關 配置數據無效。

配置錯誤鎖定違反

238:<httpErrors errorMode="Custom" defaultPath="/Public/Error.html" existingResponse="Replace" defaultResponseMode="ExecuteURL">

谷歌搜索鎖定違反沒有幫助我太多,因爲結果常常告訴我關於獨立IIS。 Windows事件日誌中沒有任何錯誤。

我想爲Azure和獨立IIS上的任何404顯示Error404.html。任何幫助都會很棒。

回答

4

那麼,顯而易見的問題是:你確定你的自定義錯誤頁面實際上是部署到你的Azure Web Role實例嗎?

第二個問題:它在Azure模擬器中有效嗎?

更新:
錯誤消息表明config部分鎖定在您的目標II上。
閱讀本文Introduction to ApplicationHost.config。 您可能需要解鎖httpErrors部分。

另外,看看this solution有類似的錯誤。

+0

我編輯了我的問題。它被部署(顯示爲aspx-404s),但它在本地不起作用。無論如何,謝謝你,檢查這給了我更多的見解。 – 2012-02-10 14:34:29

+0

我也更新了我的答案。 – 2012-02-10 15:16:17

+0

非常感謝你!我愚蠢地忽略了這些提示,因爲我並不期望觸及底層的IIS本身。現在,我必須找到一種方法來堅持進一步更新和重新部署這些更改...... – 2012-02-10 16:21:28

相關問題