0

クライアント マシンに展開された Web サイトでエラーが発生します。ここでの質問に対する私の回答によると、最初は Windows 認証と複数のエラー プロバイダーが原因であると考えました。しかし、クライアントにログインするためにElmahを追加しましたが、あるパターンに気付きました....

コントローラーの署名は次のとおりです。

public ActionResult Class(int subjectId, int classGroupId)

失敗したリクエストは、elmah ログにリストされています。

HTTP_REFERER - https://someUrl.com/Results/Class/4372/16202

ただし、パス情報にはパラメーターが 1 つしかありません。

PATH_INFO - /Results/Class/4372/

エラーメッセージは

System.ArgumentException パラメーター ディクショナリに、'MyNamespace.Controllers.ResultsController' のメソッド 'System.Web.Mvc.ActionResult Class(Int32, Int32)' の null 非許容型 'System.Int32' のパラメーター 'subjectId' の null エントリが含まれています. オプションのパラメーターは、参照型または null 許容型であるか、オプションのパラメーターとして宣言する必要があります。パラメータ名: パラメータ

そのため、どこかでパラメーターを失っています。エラー メッセージに、2 番目のパラメーターではなく、1 番目のパラメーターが欠落していることが示されていることに興味があります。

このアクション用にルートを設定しました。

 routes.MapRoute(
     "ClassResults", // Route name
     "{controller}/{action}/{subjectId}/{classGroupId}", // URL with parameters
     new { controller = "Results", action = "Class" } // Parameter defaults
 );

このエラーをデバッグする方法は?

4

0 に答える 0