在本地,我的项目运行良好,但当我使用web应用程序在Azure上部署时,它启动时会出现以下错误:
MissingMethodException:未找到方法:"Newtonsoft.Json.JsonSerializerSettings Microsoft.AspNet.Mvc.Formatters.JsonOutputFormatter.get_SerializerSettings()"。SmartAdmin.启动。<>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();
});
是的,我只是工作了一整夜,最终还是想明白了。以下是您需要做的:
请确保安装:-Microsoft.AspNet.Mvc.Formatters.Json版本"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"
我在重新部署时也遇到了一些麻烦,但最终还是成功了。
祝你好运!
截至昨天(2016年8月2日),Azure应用程序服务刚刚与微软支持部门通了电话。由于一个重大变化:
发布了一个突破性的更改,不支持ASP.NET核心以外的任何内容,因此唯一的选择是升级。突破性的改变正在推广到所有(地区),最终您的所有实例都将失败。
Azure应用程序服务是否支持ASP.NET 5、Core RC1、RC2?无
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升级了我们的应用程序,它第一次起作用。
我们在生产中也看到了这一点,联系了团队并得到了消息: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的修复程序也在进行中。同时,链接的帖子包含了与这里其他答案几乎相同的说明。