- PR -

GetResponseStreamの内容について

投稿者投稿内容
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-07-27 13:17
そもそもArgumentExceptionは
引用:

StreamReader sr = new StreamReader(st, enc);


で発生しているんだと思います。


引用:

st.Lengthも例外エラーが発生して内容を見られません。



これはデバッグでとめても見れないんですか?
StreamReaderの生成で例外が発生しているのなら見れそうなもんですけど。。。

Diosan
常連さん
会議室デビュー日: 2006/07/27
投稿数: 29
お住まい・勤務地: 静岡
投稿日時: 2006-07-27 13:20
失礼しました。
WebExceptionを拾った中の処理で例外が出ていたのですね。

なら、WebExceptionをキャッチした中で、もう1個try〜catchを
入れてみたらいかがでしょう?
何かヒントが見つかると良いですね。

catch(WebException we)
{
try
{
}
cacth( System.ArgumentException ae)
{
// ログ処理
}
}
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-07-27 13:38
こんにちは。

いくつか情報が足りていない部分があるのではないかと思います。

エラーが発生した時点で、Web サービスが返しているステータスコードは
何番でしょうか。
# 301 とか 302 だったりしなきゃいいけど

相手側の Web サービスの http サーバープログラムと OS (念のため)
の種類を教えてください。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
なりこ
ベテラン
会議室デビュー日: 2005/06/09
投稿数: 61
投稿日時: 2006-07-28 09:42
ステータスが404で返ってくるテストをしました。
catch(WebException webExcp)の中にさらにtry〜catchで
catch(System.ArgumentException ag)を入れたところ、キャッチされたエラーは
「ストリームを読み取れませんでした。」となっています。
OSはWindow2000Serverです

<Webサービスのコード>
[WebMethod]
public string WebSrv_YesPara(string pRtn, out string rMsg)
{
rMsg = pRtn;
return "リターン成功(引数あり)";
}

<クライアントのコード>
try
{
pIP=クライアントのIPアドレス;
rMsg = _chkSrv.WebSrv_YesPara(pIP,out wMsg);


}
catch(WebException webExcp)
{
wMsg = webExcp.Status + "-" + webExcp.Message + "\\r\\n";
if (webExcp.Status == WebExceptionStatus.ProtocolError)
{
HttpWebResponse response = (HttpWebResponse)webExcp.Response;
try
{
Stream st = response.GetResponseStream();
Encoding enc = Encoding.UTF8;
StreamReader sr = new StreamReader(st, enc); ←ここでArgumentException エラーに飛ぶ
wMsg += sr.ReadToEnd() + "\\r\\n";
sr.Close();
st.Close();
}
catch(System.ArgumentException ag)
{
wMsg += "受信内容取得エラー1:" + ag.Message + "\\r\\n";
}
}
return wMsg;
}

return wMsg;


スキルアップ/キャリアアップ(JOB@IT)