10

ASP.Net MVC エラー「申し訳ありませんが、リクエストの処理中にエラーが発生しました」について多くのお問い合わせがあります。残念ながら、実際に何が起こっているのかを実際に議論しているものを見つけることができませんでした. 当然のことながら、メッセージの直接のソースや原因ではなく、根本的なエラーに焦点を当てています。したがって、これらのソリューションは、同じ質問に対してさまざまな回答を提供します。

以下にいくつかの例を示します。

私が調査した多くの回答のスタック トレース データに基づいて、これはSystem.Web.Mvc.ControllerActionInvokeクラスでトリガーされる可能性があるようです。これは一般に、実行中の ActionResult メソッドで未処理のエラーが直接発​​生した結果のようです。

メッセージ内の「リクエストを処理しています」という用語を理解してください。エラー表示の見方からすると、これが HTTP リクエストを参照しているとは考えにくいと思われます。おそらく、MVC アーキテクチャでより詳細なものでしょうか? このメッセージの発信元とその理由について、誰かがもう少し光を当てることができますか?

4

1 に答える 1

13

既定の ASP.Net MVC アプリケーションの既定のエラー処理では、エラーが Error.aspx 共有ビューにリダイレクトされます。Error.aspx ファイル内に、「申し訳ありませんが、要求の処理中にエラーが発生しました」というメッセージ テキストがあります。メッセージは .Net クラスから生成されません。

次の SO の質問により、私は明らかになりました: ASP.NET MVC HandleError が機能していません (customErrors が「オン」に設定されています)

根本的なエラーの詳細を表示するには、いくつかのオプションがあります。

  • デフォルトの Error.aspx ページをカスタマイズして、根本的なエラーの詳細を表示します。

  • web.config ファイルで CustomErrors をオフにします。今後のエラーでは、「申し訳ありませんが、エラーが発生しました」というメッセージではなく、デフォルトの ASP.Net の「黄色い画面」エラーの詳細が表示されるはずです。

  • 関連する ActionResult メソッドで具体的にエラーを処理します。

于 2013-06-14T16:28:54.140 に答える