5

我昨天注意到,当我调试我的 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 角色项目)。但只是有时(实际上它似乎每隔一次我调试时都会发生)......我所要做的就是修复它是停止并重新启动调试器。是什么导致了问题?

4

2 回答 2

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 中而派生类型不在?错误不是说问题是相反的吗??)。

于 2012-11-30T17:48:03.347 回答
1

Try updating your nuget packages. I updated mine, and it fixed the issue. I was also having this issue on azure service itself.

于 2013-07-17T18:00:50.353 回答