2017-12-07 5 views
0

問題のエラーに関する既存の質問/回答をすべて検索しましたが、コードで何か問題はありませんむしろ機械上にある。サーバ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) { 

    } 
} 
+1

"いない"とは何ですか?エラー?予期しない出力? – tadman

+0

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

+0

返信ありがとう、申し訳ありません私は少し急いで質問を適切に延長します。私はNewtonJsonを使用していないが、私はそれを使用してコードの他のバージョンを持っている、私は質問が別のマシン上で奇妙な動作については、コードが誤解を招く、役に立たないです。アセンブリは同じで、外部のwsから戻るjsonは同じです。アクセスは許可されます(手動でテストされます)。なぜ私は、2つの同一のマシンが動作しているのか、もう一方のマシンが動作していないのかを把握しました。私はすぐに質問を明確にしようとします。 –

答えて

0

以下

、リクエストボディは、JSONコンテンツとして扱われます。このため、URLエンコード形式がJSON形式と異なるため、"Invalid JSON primitive"エラーが発生します。

削除:

wcClient.Headers.Add("contentType: 'application/json; charset=utf-8'"); 
0

私は謝るが、私は解決しました。 sysadminは、接続がファイアウォールの下にあり、サーバマシンが許可されたアドレスから外れていることを知らせなかった。 BTW私はこの投稿がまだ意味をなさないと確信しています。なぜなら、私は2つの同一の構成を考えていたため、異なる行動をとる方法がなく、誰かが同じ問題を起こしたとしても、すべてを調査する必要があるからです。 「無効なJSONプリミティブ」というエラーメッセージが返されたと考えられているため、拒否された権限では何も表示されません。みんなに感謝します。

関連する問題