2

httpErrors の使用に関する多くの投稿を見てきましたが、私のプロジェクト、または少なくとも私の理解には、より深い問題があると思います。

最近、代わりに customErrors の使用から HttpErrors の使用に移行しました。カスタム エラーは正常に表示されますが、エラーの場合は IIS のブルー スクリーン (エラーに関する情報がありません) しか表示されません。

それ以来、カスタム エラー ページをリモートで取得し、YSOD をローカルで取得しようとしましたが、成功しませんでした。

「Response.TrySkipIisCustomErrors = true;」を追加しました。Global.asax.cs の Application_Error に変更しましたが、違いはないようです。また、プロジェクトは ASP .NET と MVC の両方を使用していますが、それが違いを生むかどうかはわかりません。

私は existingResponse と errorMode をいじっていましたが、これらは私が見てきた結果です: (私のフォーマットが意味をなさない場合はお知らせください)

[既存の応答 | エラーモード | リモート結果 | ローカル結果]

| | 置換 | 詳細なローカルのみ | エラーページを修正 | IIS のブルー スクリーン

| | 置換 | カスタム | エラーページを修正 | エラーページを修正

| | パススルー | 詳細なローカルのみ | YSOD | YSOD

| | 自動 | カスタム | YSOD | YSOD

| | 自動 | 詳細なローカルのみ | YSOD | YSOD

これが私のwebconfigです:

<httpErrors existingResponse="Auto" errorMode="Custom">
  <remove statusCode="404" subStatusCode="-1" />
  <error statusCode="404" subStatusCode="-1"  prefixLanguageFilePath="" path="404.html" responseMode="File" />
  <remove statusCode="500" subStatusCode="-1" />
  <error statusCode="500" subStatusCode="-1"  prefixLanguageFilePath="" path="500.html"  responseMode="File"/>
</httpErrors>  

Global.asax.cs

  protected void Application_Error(object sender, EventArgs e)
  {
      Response.TrySkipIisCustomErrors = true; 
      Exception ex = Server.GetLastError().GetBaseException();
      LogProvider.Log(LogProvider.LogLevels.Error, "Global Error", ex);
  }

助けてくれてありがとう。

4

0 に答える 0