1

一部のクラシックASPサイトをIIS6ボックスからIIS7を実行する新しいServer2008ボックスに移行しています。

カスタムエラーに関する学習プロセスを経て、これらが正しく機能し、Server.GetLastErrorが機能するようになりました。

移行するサイトは、カスタム404.aspエラーページを利用して、URLに応じてデータベースからコンテンツをプルする特注のCMSを使用しています。これも完璧に機能します。

ただし、2つを組み合わせると(たとえば、カスタム404ページを介して実行されるページで500エラーが発生した場合)、完全に空白のページが表示されます。エラーなし、情報なし。ただの白いページ。

例1:http ://snavebelac.com/thisdoesnotexistの結果はカスタム404ページになります例2:http ://snavebelac.com/st-test空白ページ。これには、カスタム404ページ内に意図的な500エラーがあります。

カスタム404.aspエラーページを実行しているため、カスタム500エラーページが機能しなくなると思います。

カスタム404ページが起動するようにサーバーを構成する方法を知っている人はいますが、IIS6の場合と同じように500エラーがブラウザーに出力されます。または、カスタム404と同様にカスタム404を処理するようにサーバーを構成する方法はありますか。カスタム500?

前もって感謝します。

4

3 に答える 3

0

ここに投稿されたソリューションを確認してください -ASP.NETMVCで404を適切に処理するにはどうすればよいですか?

重要なのは- Response.TrySkipIisCustomErrors = true;

于 2012-11-28T01:30:47.630 に答える
0

次のように、500 ステータス エラーを処理するように web.config を構成する必要があります。

<system.web>
    <customErrors mode="On" defaultRedirect="frmError.aspx">
        <error statusCode="404" redirect="frmNotFound.aspx" />
        <error statusCode="500" redirect="frmError.aspx" />
    </customErrors>
</system.web>

コードの 4 行目に注意してください。500 エラーが発生したため、witch ページを呼び出す必要があると書かれています。

于 2012-03-14T21:07:22.950 に答える
0

同様の問題がありました。解決策は本当に奇妙ですが、確実に機能します。

私は非常に実用的です、次のことをしてください。

<httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL" existingResponse="Auto">
  <remove statusCode="500" subStatusCode="-1" />
  <error statusCode="500" subStatusCode="100" prefixLanguageFilePath="" path="/500.100.asp" responseMode="ExecuteURL" />
  <remove statusCode="404" subStatusCode="-1" />
  <error statusCode="404" prefixLanguageFilePath="" path="/404.asp" responseMode="ExecuteURL" />
</httpErrors>

空白のページは、次のように終了することが保証されている場合、「空白ではありません」になります。

Response.Flush()

IIS が /500.100.asp 内のコードを実行すると、応答がフラッシュされず、空白のページで終了します。IIS7.5/IIS8 および Classic ASP では、「404」および「500.100」のカスタム エラーが発生する可能性があることを保証します ;)

于 2014-11-15T15:50:28.583 に答える