Веб-сайт ASP.NET MVC 4 не запускается - не удалось загрузить тип 'System.Reflection.AssemblyMetadataAttribute'

Я развернул свое веб-приложение ASP.NET MVC 4 на Windows Server 2003 (IIS 6). Но это не начнется.

Первоначально я разработал проект для.NET 4.5, но мне пришлось перестроить его для.NET4, когда я обнаружил, что.NET 4.5 не поддерживается в Windows Server 2003. Это означало удаление всех сторонних ссылок (с NuGet), изменение построить цель в свойствах проекта в.NET4, а затем добавить ссылки обратно. Ссылки были на Ninject, EF и Automapper.

Когда я пытаюсь загрузить страницу, я получаю следующую ошибку:

Не удалось загрузить тип 'System.Reflection.AssemblyMetadataAttribute' из сборки 'mscorlib, версия =4.0.0.0, культура = нейтральная, PublicKeyToken=b77a5c561934e089'. Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.TypeLoadException: не удалось загрузить тип 'System.Reflection.AssemblyMetadataAttribute' из сборки 'mscorlib, версия =4.0.0.0, культура = нейтральная, PublicKeyToken=b77a5c561934e089'.

Ошибка источника:

Во время выполнения текущего веб-запроса было сгенерировано необработанное исключение. Информация о происхождении и местоположении исключения может быть идентифицирована с помощью трассировки стека исключений ниже.

Трассировки стека:

[TypeLoadException: не удалось загрузить тип 'System.Reflection.AssemblyMetadataAttribute' из сборки 'mscorlib, версия =4.0.0.0, культура = нейтральная, PublicKeyToken=b77a5c561934e089'.]
System.ModuleHandle.ResolveType (модуль RuntimeModule, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, тип ObjectHandleOnStack) +0
System.ModuleHandle.ResolveTypeHandleInternal (модуль RuntimeModule, тип Int32Token, RuntimeTypeHandle [] typeInstantiationContext, RuntimeTypeHandle [] methodInstantiationContext) +180
System.Reflection.RuntimeModule.ResolveType (Int32 metadataToken, Type [] genericTypeArguments, Type [] genericMethodArguments) +192
System.Reflection.CustomAttribute.FilterCustomAttributeRecord (CustomAttributeRecord caRecord, MetadataImport сфера, сборка и lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, булева mustBeInheritable, Object[] атрибуты, IList derivedAttributes, RuntimeType& AttributeType, IRuntimeMethodInfo& CTOR, булевы & ctorHasParameters, булевы & isVarArg) + 115
System.Reflection.
System.Reflection.RuntimeAssembly.GetCustomAttributes(Тип attributeType, логическое наследование) +64
WebActivator.AssemblyExtensions.GetActivationAttributes (сборка сборки) +113
WebActivator.ActivationManager.RunActivationMethods () +216
WebActivator.ActivationManager.RunPreStartMethods () +28
WebActivator.ActivationManager.Run () +55

[InvalidOperationException: метод инициализации запуска перед приложением Выполнить по типу WebActivator.ActivationManager вызвал исключительную ситуацию со следующим сообщением об ошибке: Не удалось загрузить тип 'System.Reflection.AssemblyMetadataAttribute' из сборки 'mscorlib, Version=4.0.0.0, Culture= нейтральный, PublicKeyToken=b77a5c561934e089'..] System.Web.Compilation.BuildManager.InvokePreStartInitMethods(методы ICollection`1) +423
System.Web.Compilation.BuildManager.CallPreStartInitMethods () +306
System.Web.Hosting.HostingEnvironment.Initialize (ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Исключение appDomainCreationException) +677

[HttpException (0x80004005): Метод инициализации запуска перед приложением Выполнить по типу WebActivator.ActivationManager вызвал исключительную ситуацию со следующим сообщением об ошибке: Не удалось загрузить тип 'System.Reflection.AssemblyMetadataAttribute' из сборки 'mscorlib, Версия =4.0.0.0, Культура = нейтральная, PublicKeyToken=b77a5c561934e089'..] System.Web.HttpRuntime.FirstRequestInit(контекст HttpContext) +9164848 System.Web.HttpRuntime.EnsureFirstRequestInit(контекст HttpContextWebWebWeb).

Есть идеи?

РЕДАКТИРОВАТЬ: Сайт разработан с использованием VS2012

1 ответ

Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly mscorlib

Да, технически это может пойти не так, когда вы выполняете код в.NET 4.0 вместо.NET 4.5. Атрибут был перемещен из System.Core.dll в mscorlib.dll в.NET 4.5. Хотя это звучит как довольно неприятное критическое изменение в версии фреймворка, которая должна быть на 100% совместимой, атрибут [TypeForwardedTo] должен сделать эту разницу ненаблюдаемой.

Другие вопросы по тегам