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 を削除することで、この同じ問題に対処しました。ではなかった。これは明らかに人の問題を解決しましたが、私には後ろ向きに思えます(派生型はGACにないのに、なぜ基本型はGACにないのですか?問題が逆であるというエラーではありませんか??)。

于 2012-11-30T17:48:03.347 に答える
1

nuget パッケージを更新してみてください。私は私のものを更新しました、そしてそれは問題を修正しました。Azureサービス自体にもこの問題がありました。

于 2013-07-17T18:00:50.353 に答える