2012-08-13 45 views
0

目前,我們正在向asp.net應用程序添加asp-net web api支持。但是,當使用任何路徑在控制器上請求操作時,AppRelativeCurrentExecutionFilePath始終設置爲「〜/」並導致400錯誤。使用路由調試器here確認AppRelativeCurrentExecutionFilePath始終是不正確的,不管網址是什麼。對於所有ASP.NET Web API路徑,AppRelativeCurrentExecutionFilePath始終設置爲〜/

例如,所有的以下網址訪問,具有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,即使在那裏它看起來是錯誤的。

回答

1

似乎已經發現問題,網站有一個「。」在名稱和由於某種原因asp.net不喜歡它。造成這個問題的根路徑是

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

注意「Test.Client」,將其改爲「TestClient的」和所有的工作按預期。當我從測試機器複製鏈接時,改變了它並忽略了它。如果他們遇到這個問題,這應該可以節省幾個小時。仍然不確定這是否是一個錯誤!?

+0

這也是VS 2012開發服務器中的一個錯誤,它不僅影響了ASP.NET MVC的頁面路由,還影響了WebForms頁面路由。我只是從目錄名稱中刪除了這段時間,並開始工作。感謝發佈這個......它讓我省下了你懷疑的時間! – 2012-10-09 17:07:46