Umbracoを使用してWebアプリケーションを開発しています。PageNotFoundというコンテンツを作成し、umbracoSettings.configファイルのエラーセクションに、404error404のノードIDを入力します。問題は、IIS 7では、IISは常にweb.configのHttpErrorsセクションを検索し、umbracoSettings.configに注意を払わないことです。
私は何をすべきか?
Umbracoを使用してWebアプリケーションを開発しています。PageNotFoundというコンテンツを作成し、umbracoSettings.configファイルのエラーセクションに、404error404のノードIDを入力します。問題は、IIS 7では、IISは常にweb.configのHttpErrorsセクションを検索し、umbracoSettings.configに注意を払わないことです。
私は何をすべきか?
web.config(system.webServerセクション)で、すべてのエラー処理をアプリケーションに渡すようにサイトに指示できます。
<httpErrors existingResponse="PassThrough" />
これには、Umbracoが見つからない.aspxページ以外は処理しないという欠点があります。
代わりに次のようなことを行うことで、より良いものにすることができます。
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/non-existing-page.aspx" responseMode="ExecuteURL" />
</httpErrors>
non-existing-page.aspxはUmbracoにまだ存在しないため、404をトリガーし(aspx拡張子があるため)、.. presto:Umbracoは404を完全に処理します!
追加するまで500エラーは機能しませんでした
existingResponse="Replace"
そのように
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="404" path="/non-existing-page.aspx" responseMode="ExecuteURL" />
<error statusCode="500" path="error.html" responseMode="File" />
</httpErrors>