我昨天注意到,当我调试我的Web角色时,我的本地Windows Azure模拟器中发生了此错误。但部署的项目仍然适用于Azure。今天,我部署的项目失败了同样的错误。请帮忙!
我的Global.axax.cs文件的Application_Start方法中的代码块:
GlobalConfiguration.Configuration.MessageHandlers
.Add(new BasicAuthMessageHandler()
{
PrincipalProvider = new PrincipalProvider()
});
抛出此错误:
类型违反的继承安全规则:'System.Net.Http.Formatting.JsonContractResolver'。派生类型必须与基类型的安全可访问性匹配,或者不易访问。
当我开始调试时(这是一个Azure Web角色项目)。但有时候(实际上它似乎每隔一次我调试就会发生)......我需要做的就是停止并重新启动调试器。是什么导致了这个问题?
答案 0 :(得分:1)
这与Newtonsoft.Json程序集有关。我从项目的引用中删除了它,清理并重建了项目(为了更好的测量),然后重新添加它并重新重建项目。错误消失了。
System.Net.Http.Formatting.JsonContractResolver派生自Newtonsoft.Json。另一个线程(这里:http://forums.asp.net/t/1812274.aspx/3/10)通过从GAC中删除Newtonsoft.Json来解决同样的问题,因为它在那里并且System.Net.Http.Formatting不是。这显然解决了一个人的问题,虽然它对我来说似乎很落后(为什么基类型不能在GAC中而派生类型不是?是不是错误说问题是另一种方式?)。
答案 1 :(得分:1)
尝试更新您的nuget包。我更新了我的,它解决了这个问题。我在azure服务本身也遇到了这个问题。