2

私の 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.htmlAzure とスタンドアロン IIS の両方で 404を表示したいと思います。どんな助けでも素晴らしいでしょう。

4

1 に答える 1

4

当然のことですが、カスタム エラー ページが実際に Azure Web ロール インスタンスにデプロイされていることを確認しましたか?

2 番目の質問: Azure エミュレーターで動作しますか?

更新:
エラー メッセージは、構成セクションがターゲット II でロックされていることを示しています。このApplicationHost.config の紹介を
読んでください。おそらく、httpErrors セクションのロックを解除する必要があります。

また、同様のエラーについては、このソリューションをご覧ください。

于 2012-02-10T14:23:36.447 に答える