And*_*ltz 5 asp.net-mvc-4 asp.net-web-api
我昨天注意到,当我调试我的Web角色时,我的本地Windows Azure模拟器中发生了这个错误.但部署的项目仍然适用于Azure.今天,我部署的项目失败了同样的错误.请帮忙!
这个代码块在我的Global.axax.cs文件的Application_Start方法中:
GlobalConfiguration.Configuration.MessageHandlers
.Add(new BasicAuthMessageHandler()
{
PrincipalProvider = new PrincipalProvider()
});
Run Code Online (Sandbox Code Playgroud)
抛出此错误:
违反类型的继承安全规则:'System.Net.Http.Formatting.JsonContractResolver'.派生类型必须与基本类型的安全可访问性匹配,或者不太容易访问.
当我开始调试时(这是一个Azure Web角色项目).但有时候(实际上它似乎每隔一次我调试就会发生)......我需要做的就是停止并重新启动调试器.是什么导致了这个问题?
这与 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 中,而派生类型则不能?错误不是说问题是相反的吗??)。
| 归档时间: |
|
| 查看次数: |
3471 次 |
| 最近记录: |