Не удалось загрузить тип HttpControllerConfigurationAttribute после обновления до Asp.Net MVC 4 RTM

Я работаю над одностраничным приложением изначально на ASP.Net MVC 4 Beta и EF 4.3.1. Я обновил все пакеты NuGet для MVC 4 и EF 5. Теперь всякий раз, когда я делаю вызов ApiController или DbDataController, я получаю следующее исключение:

Не удалось загрузить тип «System.Web.Http.Controllers.HttpControllerConfigurationAttribute» из сборки «System.Web.Http, версия = 4.0.0.0, культура = нейтральная, 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 был удален, хотя я все равно не использовал его явно.

Конфигурация контроллера: Контроллеры веб-API ASP.NET могут быть атрибутированы с помощью настраиваемого атрибута, который реализует IControllerConfiguration для настройки собственных средств форматирования, селектора действий и связывателей параметров. Атрибут HttpControllerConfigurationAttribute удален. Примечания к выпуску MVC 4

Мой вопрос в том, что может пытаться загрузить этот тип в этот момент?

Редактировать: я сейчас думаю, что это связано с тем, что биты SPA не обновлялись со времен MVC 4 Beta, и там есть атрибуты конфигурации контроллера.


person Chris Rock    schedule 27.08.2012    source источник
comment
Та же проблема, я хотел использовать DbDataController. Если вы найдете решение, не стесняйтесь обновлять его.   -  person Poul K. Sørensen    schedule 17.10.2012


Ответы (2)


Конфигурация контроллера: Контроллеры веб-API ASP.NET могут быть атрибутированы с помощью настраиваемого атрибута, который реализует IControllerConfiguration для настройки собственных средств форматирования, селектора действий и связывателей параметров. Атрибут HttpControllerConfigurationAttribute удален. Примечания к выпуску MVC 4

person Jhon    schedule 27.08.2012
comment
Да, я понимаю, что его удалили. Вы на самом деле скопировали из моего вопроса, так что я читал это раньше. Дело в том, что я никогда не использовал атрибут с самого начала. Что мне интересно, так это то, что пытается загрузить один сейчас? - person Chris Rock; 28.08.2012

Возможно, у вас есть более старые версии System.Web.Http в вашем GAC. Я считаю, что в бета-версии мы использовали GAC для dll, поэтому вы видите эту проблему ... если вы отмените Gac для этой старой dll, вы не должны увидеть эту проблему.

person Kiran Challa    schedule 28.08.2012
comment
У меня та же проблема, что и у автора этого вопроса, но я не могу найти dll в своем gac, так что это не так. - person Peter; 19.10.2012