2012-07-20 90 views
1

當我訪問Web api路由時,出現以下異常,但該網站在其他情況下正常工作。無法讓Web API在我的MVC應用程序中工作

我正在運行MVC應用程序,它仍然部分在Web窗體上。我們正在使用DI的結構圖,並且我遵循這裏的建議(http://lucid-nonsense.co.uk/dependency-injection-web-api-and-mvc-4-rc/)爲WebAPI設置DI,但沒有任何區別。

什麼需要System.Data.Services 3.5.0?這似乎很奇怪,我認爲這是3.5,而不是4.x中

System.IO.FileNotFoundException 無法加載文件或程序集「Microsoft.Data.Services, 版本= 3.5.0.0,文化=中立, PublicKeyToken = b77a5c561934e089'或 其依賴項之一。該系統找不到指定的文件。 處 System.Reflection.RuntimeAssembly.GetExportedTypes() System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly 組件,ObjectHandleOnStack retTypes)處 系統 System.Web.Http.Dispatcher.DefaultHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver) .Web.Http.WebHost.WebHostHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver)在 System.Web.Http.Dispatcher.HttpControllerTypeCache.InitializeCache() 在System.Lazy 1.CreateValue() at System.Lazy 1.LazyInitValue()在 System.Lazy 1.get_Value() at System.Web.Http.Dispatcher.HttpControllerTypeCache.get_Cache() at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.InitializeControllerInfoCache() at System.Lazy 1.CreateValue ()在System.Lazy 1.LazyInitValue() at System.Lazy 1.get_Value()在 System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(HttpRequestMessage 請求)處 的System.Web System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncInternal(HttpRequestMessage 請求,的CancellationToken的CancellationToken)。 Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage 請求的CancellationToken的CancellationToken)

非常感謝!

+0

您是使用RC還是beta還是每晚構建? – Aliostad 2012-07-20 10:47:36

+0

我正在使用RC。根據NuGet,所有軟件包都是最新的。 – richardwhatever 2012-07-20 17:43:56

回答

1

您的系統缺少ADO.Net數據服務附帶的.Net Framework 3.5 SP1。您可以嘗試安裝ADO.NET Data Services v1.5 CTP2:http://www.microsoft.com/en-us/download/details.aspx?id=23113並查看它是否有效。即使安裝過程中出現錯誤,它也可能起作用。 您正在使用哪種DB上下文生成器?如果您使用EF 4.x DbContext生成器,那麼它可能需要舊版本的Data Services,我認爲。 MVC4附帶的EF 5不適用於VS2010。

+0

嗨,謝謝你的回覆。我現在不在工作站附近,但是同一個VS2010解決方案中的另一個項目fyi可以很好地與WebAPI協同工作 - 該項目是標準webapi示例項目。我不知道VS2010和MVC4/EF5存在問題。 – richardwhatever 2012-07-26 13:07:52

+0

示例項目不使用DbContext生成器,所有代碼都是手動完成的。我的猜測是你正在使用Ef 4.x DbContext Generator來尋找ADO.Net Data Services。 如果你看EF 5.x DbContext生成器它說它只適用於「Visual Studio 2012 RC」:http://visualstudiogallery.msdn.microsoft.com/5d01a981-91b8-492c-b42c-c771c3f31e03 微軟想要強制人們升級... – nsns 2012-07-26 17:40:34

+0

嘿,你是對的。非常感謝! – richardwhatever 2012-08-01 21:45:15

相關問題