問題のエラーに関する既存の質問/回答をすべて検索しましたが、コードで何か問題はありませんむしろ機械上にある。サーバ10でJSON(無効なJSONプリミティブ)のデシリアライズエラーが発生しました2012年サーバでは
デシリアライズが完全に機能するWindows 10には、ローカルのデバイスマシンがあります。私がServer 2012を公開すると、それは爆発する。 3つのバージョンのコードを使用して解像度を強制しようとしましたが、異なるエラーメッセージが表示されることがありますが、結果は同じです。 json呼び出しを処理するNewtonJson
異なる展開で誰かが奇妙な動作をした場合、私は見つけることができません。スニペットcontentType: "application/json"
設定
foreach(var s in ids) {
i++;
string _endpoint = sbc_url + s;
Uri _uri = new Uri(_endpoint);
WebClient wcClient = new WebClient();
wcClient.BaseAddress = _endpoint;
wcClient.Headers.Add("contentType: 'application/json; charset=utf-8'");
wcClient.Headers.Add("dataType: 'json'");
var response = wcClient.DownloadString(_endpoint);
try {
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize <Dictionary<string, dynamic>> (response); // BLOWS UP HERE
ws_ret r = new ws_ret();
foreach(var tt in dict["result"]) {
r.result.Add(tt);
}
if (r.result != null)
numeri.result.AddRange(r.result);
} catch (Exception ex) {
}
}
"いない"とは何ですか?エラー?予期しない出力? – tadman
1)あなたはNewtonJsonを使用していません。あなたは['JavaScriptSerializer'を使用しています(https://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer(v = vs。 110).aspx)。 2)あなたの質問を編集して、トレースバック、メッセージ、例外の種類、内部の例外を含む例外の「ToString()」出力だけでなく、「爆破する」JSONを表示できますか? 3)セキュリティ上の理由からサーバが '_endpoint' URLにアクセスできない可能性があります。あなたは' WebException'を取得していますか? [Catch it](https://stackoverflow.com/q/5999215/3744182)を参照してください。 – dbc
返信ありがとう、申し訳ありません私は少し急いで質問を適切に延長します。私はNewtonJsonを使用していないが、私はそれを使用してコードの他のバージョンを持っている、私は質問が別のマシン上で奇妙な動作については、コードが誤解を招く、役に立たないです。アセンブリは同じで、外部のwsから戻るjsonは同じです。アクセスは許可されます(手動でテストされます)。なぜ私は、2つの同一のマシンが動作しているのか、もう一方のマシンが動作していないのかを把握しました。私はすぐに質問を明確にしようとします。 –