私の Web サイトは、エラーが発生したときにカスタム HTML ページを表示するように構成されています。これは、IIS と ASP.NET 開発サーバーの両方で正常に機能します。ただし、アプリケーションを Windows Azure にデプロイするとすぐに、ASP.NET 以外の URL に対して 404 ではなく HTTP 500 が返されます。
関連する web.config-sections は次のようになります。
<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+(互換;+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 について教えてくれたので、Google のロック違反はあまり役に立ちませんでした。Windows イベント ログにエラーはありません。
Error404.html
Azure とスタンドアロン IIS の両方で 404を表示したいと思います。どんな助けでも素晴らしいでしょう。