2011-10-28 54 views
3

我目前正在部署一個asp.net網站共享的託管環境,這工作正常(404頁渲染)如何在web.config中的httpErrors上設置defaultPath而不指定自定義錯誤頁面?

<httpErrors errorMode="Custom"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" prefixLanguageFilePath="" path="/file-not-found.htm" responseMode="ExecuteURL" /> 
</httpErrors> 

但這並不(500內部服務器錯誤)

<httpErrors errorMode="Custom" defaultPath="error.htm" defaultResponseMode="ExecuteURL"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" prefixLanguageFilePath="" path="/file-not-found.htm" responseMode="ExecuteURL" /> 
</httpErrors> 

我要求看看的的applicationHost.config,它具有:

<httpErrors errorMode="Custom" defaultPath="C:\inetpub\custerr\en-US\SSLRedirect.htm" lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> 

所以我假設defaultPath作爲鎖定attribut e是導致問題的原因。

因爲這是部署到共享環境,託管公司不願意修改applicationHost.config以刪除defaultPath上的鎖定 - 那麼有沒有什麼方法可以在不解鎖defaultPath屬性的情況下指定默認錯誤頁面?

+1

如果有人知道爲什麼它默認鎖定,或者是非代碼解決方案,也會熱衷於找出:) –

+2

默認情況下它被鎖定,因爲它在共享主機環境中解鎖會導致安全問題:這將是可能的任何人都可以通過defaultPath中的絕對路徑訪問其他用戶的私人文件。 –

+0

@DimaStefantsov但是,如果allowAbsolutePathsWhenDelegated爲false,您可以使用絕對路徑嗎? –

回答

1

在global.asax中,您可以實現Application_Error()並重定向到任何你想要的位置?

+1

好點 - 我想知道爲什麼它的默認鎖定,但... –

+0

不趕上404錯誤 – jjxtra

相關問題