下記のプログラムを実行したのですが、エラーが発生してしまいました。
解決方法をご教授ください。
コードは一部抜粋になります。
GetAsyncの場合だと、疎通はうまくできるようなのですが、PostAsyncだとエラーになります。
c#
1 string Select() 2 { 3 //リクエストの値を受け取る 4 string parameters; 5 using (var reader = new System.IO.StreamReader(Request.InputStream)) 6 { 7 parameters = reader.ReadToEnd(); 8 } 9 10 //リクエストを投げる 11 using (WebClient wc = new WebClient()) 12 { 13 //プロキシサーバ設定 14 string proxyServer = WebConfigurationManager.AppSettings["Proxy-Server"]; 15 if (proxyServer != null) 16 { 17 wc.Proxy = new System.Net.WebProxy(proxyServer); 18 } 19 20 HttpClient client = new HttpClient(); 21 var content = new StringContent(parameters, Encoding.UTF8, "application/json"); 22 var result = client.PostAsync("https://XXXXXXX.YYYYYY.ZZZZZZ.AAAAAAA.com/YYY/YYY/ZZ/ABC.json", content).Result; 23 //var result = client.GetAsync("https://XXXXXXX.YYYYYY.ZZZZZZ.AAAAAAA.com/YYY/YYY/ZZ/ABC.json").Result; 24 string resultContent = result.Content.ReadAsStringAsync().Result; 25 26 return resultContent; 27 } 28 }
エラー内容
System.ArgumentOutOfRangeException
Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): mscorlib.
自分には情報不足で雲をつかむような話です。
まず、開発環境(OS, .NET, Visual Studio のバージョン、何故プロキシ経由なのかなど)と何を作っているのか(コンソールアプリ? Windows Forms? WPF? その他?)を書いてください。
> GetAsyncの場合だと、疎通はうまくできるようなのですが
その「疎通はうまくできる」というのは具体的にどういうことなのですか。期待した結果が得られる? それはどういうものですか?
> PostAsyncだとエラーになります。
どの行で出るのですか?
Fiddler で要求・応答をキャプチャしてどこ(送信側? サーバー? 受信側?)に問題がありそうかを切り分けしてください。上手くできる・できない場合があるなら、両方をキャプチャして見比べてみると解決のためのヒントが見つかるかもしれません。
500 エラーなので、要求は Web サーバーまで届いていて、Web サーバーで要求を処理しているときに例外がスローされたということのようです。
Web サーバーも質問者さんの開発環境下にあるなら、要求を受けるメソッドのどこか適当な場所にブレークポイントを置いてデバッグ実行し、クライアント側から要求をかけてステップ実行しながら問題を見つけるという手が使えるかもしれません。
そういうこと(Web サーバーでのデバッグ)ができなければ、やはり Fiddler の出番で、応答のコンテンツを見るとスタックトレースが含まれているかもしれません。
あなたの回答
tips
プレビュー