Windows Azure部署-不加载文件或程序集';Newtonsoft.Json';

本文关键字:程序集 Json Newtonsoft 文件 部署 Azure 加载 Windows | 更新日期: 2023-09-27 18:11:48

我使用Web API创建了MVC 4应用程序。它在当地环境中运行良好。当我将它部署到Azure时,它会出现以下错误。

异常信息:异常类型:HttpException异常消息:无法加载文件或程序集"Newtonsoft"。Json,Version=6.0.0.0,Culture=neutral,PublicKeyToken=30Ad4fe6b2a6eed'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT:0x80131040中的异常(。网状物HttpApplicationFactory。系统上的EnsureAppStartCalledForIntegratedMode(HttpContext上下文,HttpApplication应用程序(。网状物HttpApplication。系统上的RegisterEventSubscriptionsWithIIS(IntPtr appContext、HttpContext上下文、MethodInfo[]处理程序(。网状物HttpApplication。系统上的InitSpecial(HttpApplicationState状态、MethodInfo[]处理程序、IntPtr appContext、HttpContext上下文(。网状物HttpApplicationFactory。系统上的GetSpecialApplicationInstance(IntPtr appContext,HttpContext上下文(。网状物主机。PipelineRuntime。InitializeApplication(IntPtr appContext(无法加载文件或程序集"Newtonsoft"。Json,Version=6.0.0.0,Culture=neutral,PublicKeyToken=30Ad4fe6b2a6eed'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT:0x80131040中的异常(。网Http。格式化。BaseJsonMediaTypeFormatter。。系统中的ctor((。网Http。格式化。JsonMediaTypeFormatter。。系统中的ctor((。网Http。格式化。MediaTypeFormatterCollection。在系统中创建DefaultFormatters((。网状物Http。HttpConfiguration。系统中的DefaultFormatters(HttpConfiguration config(。网状物Http。HttpConfiguration。。ctor(HttpRouteCollection路由(。网状物Http。系统中的GlobalConfiguration.b_0((。Lazy 1.CreateValue() at System.Lazy 1.系统中的LazynitValue((。懒惰的1.get_Value() at System.Web.Http.GlobalConfiguration.get_Configuration() at System.Web.Http.GlobalConfiguration.Configure(Action 1配置回调(。网状物班长UI。MvcApplication。应用程序启动((

知道如何解决这个问题吗?

Windows Azure部署-不加载文件或程序集';Newtonsoft.Json';

它说"找到的程序集的清单定义与程序集引用不匹配",因为CLR在寻找6.0版本时找到了Newtonsoft.json的另一个版本。

发生这种情况是因为您的应用程序正在引用Newtonsoft的另一个版本。Json和其他一些对应用程序的依赖使用了6.0版本的Newtonsoft.Json。如果你深入查看.cspkg(使用7zip(并从siteroot''0''bin中提取Newtonsoft.Json,你就会知道包中包含了哪个版本的Newton soft。

在项目引用上进行验证,以查看Netonsoft.json的CopyLocal是否设置为true。此外,在web.config上,添加程序集重定向,以确保对Newtonsoft.json任何旧版本的调用重定向到所需版本。

在您的解决方案中可能有另一个版本的Newtonsof.json。您需要删除neftonsoft.json文件,并将其替换为右舵(6.0.0.0(