0

現在、asp.net アプリケーションに asp-net Web API サポートを追加しています。ただし、任意のパスを使用してコントローラーでアクションを要求すると、AppRelativeCurrentExecutionFilePath は常に「~/」に設定され、400 エラーが発生します。ここで入手可能なルート デバッガーを使用して、URL が何であっても AppRelativeCurrentExecutionFilePath が常に正しくないことを確認しました。

たとえば、以下のすべての URL アクセスの場合、AppRelativeCurrentExecutionFilePath は「~/」です。

http://localhost:1521/Testclient/apitest/values/get
http://localhost:1521/Testclient/apitest/values/get/1

ルート テーブルに必要なエントリがある場合でも、ルート デバッガーは上記の URL に対して失敗したか一致しないことを示します。

すべての Application_BeginRequest/VPP/module/http ハンドラーと、ルーティングに影響を与える可能性があるものはすべて無効にしましたが、それでも同じ問題が発生します。これをデバッグできる他の方法はありますか?

Update1: global.asax で Application_BeginRequest( ) を処理して application.Request.AppRelativeCurrentExecutionFilePath を確認しましたが、間違っているようです。

4

1 に答える 1

1

問題が見つかったようです。サイトには「.」がありました。名前にあり、何らかの理由でasp.netはそれを好きではありません。問題の原因となったルート パスは

http://localhost:1521/Test.client/apitest/values/get
http://localhost:1521/Test.client/apitest/values/get/1

「Test.Client」に注意し、「TestClient」に変更すると、すべて期待どおりに機能しました。テストマシンからリンクをコピーしたときに、変更して見落としていました。この問題に遭遇した場合、これにより数時間節約できます。これがバグかどうかまだわからない!?

于 2012-08-13T17:13:39.627 に答える