7

我正在ASP.Net MVC 4 Beta和EF 4.3.1上工作的單頁應用程序。我更新了MVC 4和EF 5的所有NuGet包。現在無論何時調用ApiController或DbDataController,我都會得到以下異常:無法加載類型HttpControllerConfigurationAttribute後更新到Asp.Net MVC 4 RTM

無法加載類型'System.Web.Http.Controllers.HttpControllerConfigurationAttribute'從程序集'System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'。

at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type) 
at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext) 
at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments) 
at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg) 
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent) 
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeType type, RuntimeType caType, Boolean inherit) 
at System.RuntimeType.GetCustomAttributes(Boolean inherit) 
at System.Web.Http.Controllers.HttpControllerDescriptor.InvokeAttributesOnControllerType(HttpControllerDescriptor controllerDescriptor, Type type) 
at System.Web.Http.Controllers.HttpControllerDescriptor.InvokeAttributesOnControllerType(HttpControllerDescriptor controllerDescriptor, Type type) 
at System.Web.Http.Controllers.HttpControllerDescriptor.InvokeAttributesOnControllerType(HttpControllerDescriptor controllerDescriptor, Type type) 
at System.Web.Http.Controllers.HttpControllerDescriptor..ctor(HttpConfiguration configuration, String controllerName, Type controllerType) 
at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.InitializeControllerInfoCache() 
at System.Lazy`1.CreateValue() 

根據MVC 4發行說明,HttpControllerConfigurationAttribute已被刪除,而不是我明確地使用它。

根據控制器配置:ASP.NET Web API控制器可以使用實現IControllerConfiguration的自定義屬性來設置自己的格式器,操作選擇器和參數綁定器。 HttpControllerConfigurationAttribute已被刪除。 MVC 4 Release Notes

我的問題是什麼可以嘗試加載此類型在這一點上?

編輯:我現在在想,這是因爲SPA位自MVC 4 Beta以來沒有更新過,並且在那裏有控制器配置屬性。

+0

同樣的問題在這裏,我想使用DbDataController。如果您發現解決方案隨時更新它。 –

回答

1

根據控制器配置:可以使用實現IControllerConfiguration的自定義屬性對ASP.NET Web API控制器進行歸因,以設置它們自己的格式器,操作選擇器和參數綁定器。 HttpControllerConfigurationAttribute已被刪除。 MVC 4發行說明

+2

是的,我知道它已被刪除。你實際上是從我的問題中複製過來的,所以我以前就讀過。事情是,我從來沒有使用屬性開始。我想知道什麼是現在試圖加載一個? –

0

您可能在您的GAC中擁有舊版本的System.Web.Http。我相信在Beta版本中,我們將GAC的dll,因此你看到了這個問題......如果你un-Gac這個老的DLL,你不應該看到這個問題。

+0

我和這個問題的作者有同樣的問題,但我無法找到我的gac中的DLL,所以沒有它.. – Peter

相關問題