エラー ID を与えるルート データ値を追加して、Application.OnError からコントローラー アクションにエラー ID を送信することで、ASP.NET MVC でエラーを処理しています。
Global.asax.cs/OnError:
var routeData = new RouteData(); routeData.DataTokens.Add("errorKey", errorId); var context = new RequestContext(new HttpContextWrapper(Context), routeData); errorController.Execute(コンテキスト);
そして、コントローラー/アクションでそれを読み取ります:
object errorKey = RouteData.DataTokens["errorKey"];
私のローカル マシンでは正常に動作しますが、サーバーでは errorKey が渡されませんでした。
これにはどのような理由が考えられますか?
サイトがWebサーバーを実行している場合の新しい観察:
- Webサーバー自体のブラウザからアクセスすると、ルートデータが正常に転送されます
- 別のマシンからアクセスすると、ルート データが転送されません