找不到方法:' Newtonsoft.Json.JsonSerializerSettings Microsoft.AspNet.Mvc.MvcJsonOptions.get_SerializerSettings()'

时间:2016-08-03 04:02:46

标签: json.net azure-web-app-service

本地我的项目运行正常但是当我使用Web应用程序在Azure上部署时,启动时出现以下错误:

MissingMethodException:找不到方法:' Newtonsoft.Json.JsonSerializerSettings Microsoft.AspNet.Mvc.Formatters.JsonOutputFormatter.get_SerializerSettings()'。 SmartAdmin.Startup。<> c.b__13_7(MvcOptions选项)

我试过这个:

services.AddMvc(options =>
        {
                options.Filters.Add(new UserPreferencesLoaderAtrribute());
                var jsonFormatter = (JsonOutputFormatter)options.OutputFormatters.FirstOrDefault(f => f is JsonOutputFormatter);
                if (jsonFormatter != null)
                {
                jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            }
        });

而且:

services.AddMvc(options =>
        {
            options.Filters.Add(new UserPreferencesLoaderAtrribute());

        }).AddJsonOptions(options =>
        {
            options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        });

3 个答案:

答案 0 :(得分:6)

是的,我刚刚工作了一整夜,并最终弄明白了。以下是您需要做的事情:

确保安装:   -Microsoft.AspNet.Mvc.Formatters.Json version" 6.0.0-rc1-final"    和     - 将Netonsoft.Json恢复为" 6.0.6"。

然后你可以保留这个:

services.AddMvc().AddJsonOptions(options =>
    {
        options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    });

project.json:

" Microsoft.AspNet.Mvc.Formatters.Json":" 6.0.0-rc1-final", " Newtonsoft.Json":" 6.0.6"

我在重新部署方面遇到了一些麻烦,但最终还是有效。

祝你好运!

答案 1 :(得分:1)

截至昨天(2016年8月2日),刚刚与微软支持部门进行了通话。由于突破性变化,Azure App Services现在仅支持ASP.NET核心:

发布了重大更改,不支持ASP.NET核心以外的任何内容,因此唯一的选择是升级。正在向所有(地区)推出重大变更,最终所有实例都将失败。

Azure应用服务是否支持ASP.NET 5,Core RC1,RC2? NO

https://blogs.msdn.microsoft.com/waws/2016/06/14/supporting-asp-net-5-core-rc1-on-azure-app-service/

验证您的应用是否运行最新版本的ASP.NET Core,而不是RC1或RC2。

我们受到影响(北欧)并将我们的应用程序从RC2升级,并且它第一次工作。

答案 2 :(得分:0)

我们也在制作中看到了这一点,与团队联系并解决了这个问题:https://social.msdn.microsoft.com/Forums/en-US/f0a6bbaf-498a-4c1f-b869-6779ee18e04e/app-service-applications-may-experience-methodnotfound-exceptions-due-to-incorrect-newtonsoft-json?forum=windowsazurewebsitespreview

App Service的修复程序似乎正在进行中。同时,链接的帖子包含与此处其他答案几乎相同的说明。