2

我有一个基于 ASP.NET MVC4、.NET 4.0 的网站

它部署在运行 IIS7 的服务器上。我做了一些小的改动

  • 添加了 AutoMapper(使用 nuget 包)并将其用于其中一个控制器

  • 添加了从 ApiController 派生的新控制器(其他控制器从 Controller 派生)

该站点在我的开发机器(Cassini 和 IIS)上运行良好。

当我将新版本发布到服务器时,它不起作用并显示错误页面(如下)。我不确定是什么原因以及如何解决它。请问你能帮帮我吗?

更新 1

带有 ApiController 但没有 AutoMapper 的版本运行良好。


“/”应用程序中的服务器错误。

无法加载文件或程序集“System.Core,Version=2.0.5.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e,Retargetable=Yes”或其依赖项之一。给定的程序集名称或代码库无效。(来自 HRESULT 的异常:0x80131047)

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“System.Core,Version=2.0.5.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e,Retargetable=Yes”或其依赖项之一。给定的程序集名称或代码库无效。(来自 HRESULT 的异常:0x80131047)

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

程序集加载跟踪:以下信息有助于确定为什么无法加载程序集“System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes”。

警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意:与程序集绑定失败日志记录相关的一些性能损失。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。

堆栈跟踪:

[FileLoadException:无法加载文件或程序集“System.Core,版本=2.0.5.0,文化=中性,PublicKeyToken=7cec85d7bea7798e,可重定位=是”或其依赖项之一。给定的程序集名称或代码库无效。(HRESULT 异常:0x80131047)] System.ModuleHandle.ResolveType(RuntimeModule 模块,Int32 typeToken,IntPtr* typeInstArgs,Int32 typeInstCount,IntPtr* methodInstArgs,Int32 methodInstCount,ObjectHandleOnStack 类型)+0 System.ModuleHandle.ResolveTypeHandleInternal(IntTokenModule 模块, , RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext) +493 System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext) +43 System.Reflection.RuntimeModule。

[InvalidOperationException:在类型 WebActivator.ActivationManager 上运行的预应用程序启动初始化方法引发异常,并显示以下错误消息:无法加载文件或程序集'System.Core,版本 = 2.0.5.0,文化 = 中性,PublicKeyToken = 7cec85d7bea7798e, Retargetable=Yes' 或其依赖项之一。给定的程序集名称或代码库无效。(HRESULT 异常:0x80131047)。] System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 方法)+691 System.Web.Compilation.BuildManager.CallPreStartInitMethods() +425 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, 异常 appDomainCreationException) +1021

[HttpException (0x80004005):在类型 WebActivator.ActivationManager 上运行的预应用程序启动初始化方法引发异常,并显示以下错误消息:无法加载文件或程序集'System.Core,版本 = 2.0.5.0,文化 = 中性,PublicKeyToken =7cec85d7bea7798e, Retargetable=Yes' 或其依赖项之一。给定的程序集名称或代码库无效。(HRESULT 异常:0x80131047)。] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+646 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+99 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+ 685


4

1 回答 1

3

它是 AutoMapper 3.0.0。

我已按照建议使用 AutoMapper 2.2.1

https://github.com/AutoMapper/AutoMapper/issues/383

问题就解决了。

于 2013-10-14T15:56:26.867 回答