我将ASP.NET MVC 4 Web应用程序部署到Windows Server 2003(IIS 6)。但它不会开始。
最初我开发了.NET 4.5的项目,但是当我发现Windows Server 2003不支持.NET 4.5时,不得不为.NET4重建它。 这意味着删除所有第三方引用(使用NuGet),将项目属性中的构建目标更改为.NET4,然后添加引用。 引用的是Ninject,EF和Automapper。
当我尝试加载页面时,出现以下错误:
无法从中加载类型'System.Reflection.AssemblyMetadataAttribute' assembly'mscorlib,Version = 4.0.0.0,Culture = neutral, 公钥= b77a5c561934e089' 。描述:未处理的异常 在执行当前Web请求期间发生。请 查看堆栈跟踪以获取有关错误和位置的更多信息 它起源于代码。
异常详细信息:System.TypeLoadException:无法加载类型 程序集'mscorlib中的'System.Reflection.AssemblyMetadataAttribute', Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
[TypeLoadException:无法加载类型 程序集'mscorlib中的'System.Reflection.AssemblyMetadataAttribute', Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。]
System.ModuleHandle.ResolveType(RuntimeModule模块,Int32 typeToken, IntPtr * typeInstArgs,Int32 typeInstCount,IntPtr * methodInstArgs, Int32 methodInstCount,ObjectHandleOnStack type)+0
System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule模块, Int32 typeToken,RuntimeTypeHandle [] typeInstantiationContext, RuntimeTypeHandle [] methodInstantiationContext)+180
System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, 键入[] genericTypeArguments,Type [] genericMethodArguments)+192
System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord,MetadataImport范围,汇编& lastAptcaOkAssembly, RuntimeModule decoratedModule,MetadataToken decoratedToken, RuntimeType attributeFilterType,Boolean mustBeInheritable,Object [] 属性,IList derivedAttributes,RuntimeType&属性类型, IRuntimeMethodInfo&安培; ctor,布尔& ctorHasParameters,Boolean& isVarArg)+115
System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule,Int32 decoratedMetadataToken,Int32 pcaCount, RuntimeType attributeFilterType,Boolean mustBeInheritable,IList derivedAttributes,Boolean isDecoratedTargetSecurityTransparent)+426 System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly,RuntimeType caType)+103
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类型上运行引发异常 带有以下错误消息:无法加载类型 程序集'mscorlib中的'System.Reflection.AssemblyMetadataAttribute', Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'..] System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 方法)+423
System.Web.Compilation.BuildManager.CallPreStartInitMethods()+ 306 6 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel,Exception appDomainCreationException)+677[HttpException(0x80004005):预应用程序启动初始化 方法在WebActivator.ActivationManager类型上运行引发异常 带有以下错误消息:无法加载类型 程序集'mscorlib中的'System.Reflection.AssemblyMetadataAttribute', Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'..] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9164848 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+97 System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) 258
有什么想法吗?
编辑:使用VS2012开发的网站
答案 0 :(得分:1)
Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly mscorlib
是的,当您在.NET 4.0而不是.NET 4.5上执行代码时,这在技术上可能会出错。该属性已从System.Core.dll移至.NET 4.5中的mscorlib.dll。虽然在一个应该100%兼容的框架版本中听起来像是一个相当令人讨厌的突破性变化,但是[TypeForwardedTo]属性应该会使这种差异不可观察。