我正在研究最初在ASP.Net MVC 4 Beta和EF 4.3.1上的单页应用程序。我更新了MVC 4和EF 5的所有NuGet包。现在每当我调用ApiController或DbDataController时,我都会遇到以下异常:
无法从程序集'System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'加载类型'System.Web.Http.Controllers.HttpControllerConfigurationAttribute'。
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
我的问题是此时可能尝试加载此类型的内容?
编辑:我现在正在考虑这是因为自MVC 4 Beta以来SPA位尚未更新,并且存在控制器配置属性。
答案 0 :(得分:1)
每个控制器配置:ASP.NET Web API控制器可以使用自定义属性进行归因,该属性实现IControllerConfiguration以设置自己的格式化程序,操作选择器和参数绑定器。 HttpControllerConfigurationAttribute已被删除。 MVC 4发行说明
答案 1 :(得分:0)
您的GAC中可能有旧版本的System.Web.Http。我相信Beta版本我们会对dll进行GAC,因此你会看到这个问题...如果你解开这个老版本的dll,你就不应该看到这个问题。