C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: WebRequest.GetResponseの遅さ


(過去ログ 84 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■49941 / inTopicNo.1)  WebRequest.GetResponseの遅さ
  
□投稿者/ kunina (1回)-(2010/05/24(Mon) 22:34:50)

分類:[C#] 

2010/05/24(Mon) 22:53:46 編集(投稿者)
2010/05/24(Mon) 22:41:41 編集(投稿者)

<pre><pre>こんにちは、いつもお世話になっております。
現在C#でWEBサービスAPIを使用してXMLを取得しているのですが、
WebRequest.GetResponse()を使用した際、プログラムを起動して初回のみ以上にレスポンスが遅いのです、
2回目以降は2秒くらいなのですが、初回は20秒以上はかかっています。

以前別のWEBサービスAPIを作成した時も同じ現象が起きたので、なにか設定の問題だと思うのですが。

WebRequest request = HttpWebRequest.Create(url);
WebResponse response = request.GetResponse();     // ここの初回が遅い
XmlDocument doc = new XmlDocument();
doc.Load(response.GetResponseStream());

【環境】
  Windows 7
  無線LAN
  Visual Studio2005 C#</pre></pre>
引用返信 編集キー/
■49943 / inTopicNo.2)  Re[1]: WebRequest.GetResponseの遅さ
□投稿者/ 中博俊 (1405回)-(2010/05/24(Mon) 23:08:32)
それクライアントの問題じゃなくってサーバーの問題じゃなくって?
おそらくサーバーがASP.NETとかで、再起動しているとかそういうこと無いですか?

引用返信 編集キー/
■49944 / inTopicNo.3)  Re[2]: WebRequest.GetResponseの遅さ
□投稿者/ kunina (2回)-(2010/05/24(Mon) 23:24:13)
No49943 (中博俊 さん) に返信
> それクライアントの問題じゃなくってサーバーの問題じゃなくって?
> おそらくサーバーがASP.NETとかで、再起動しているとかそういうこと無いですか?
>

すみません、勉強不足でASP.NETのことはあまり分からないのですが、そういうものは使用していないと思います。
利用しているWEBサービスはAmazonです。
引用返信 編集キー/
■49948 / inTopicNo.4)  Re[3]: WebRequest.GetResponseの遅さ
□投稿者/ れい (921回)-(2010/05/25(Tue) 07:42:46)
2010/05/25(Tue) 08:10:24 編集(投稿者)

No49944 (kunina さん) に返信
> 利用しているWEBサービスはAmazonです。

ならサーバーはきちんと生きてそうですね。
amazonで20秒というのはかなり遅いので、なにかしら異常はあると思うのですが。

あとは…

・URIがおかしい
・DNSの解決に時間がかかっている
・httpsを使っているなら初回だけ証明書の確認に時間がかかっている。
・その他の理由によりネットワークが初回だけ重い。

そんなごく当たり前のことしか思いつきません。

普通のHTTPブラウザで全く同じURIに接続してみて
初回が同様に遅いならネットワークの問題、
初回でも十分に早いのであれば違うPCで試してみるとよいのでは。

追記。

そういえばhostsを改変されてアクセス監視されてたケースが昔ありました。
プロキシが遅くて不安定でばれたのですが。
引用返信 編集キー/
■49949 / inTopicNo.5)  Re[4]: WebRequest.GetResponseの遅さ
□投稿者/ 中博俊 (1406回)-(2010/05/25(Tue) 09:48:14)
snifferなんかを使って実際のHTTPレベルでどのようなやりとりを行っているかチェックしてみてください。
実際には裏で何度かやりとりを行っているような気がします。


引用返信 編集キー/
■49951 / inTopicNo.6)  Re[1]: WebRequest.GetResponseの遅さ
□投稿者/ たか (50回)-(2010/05/25(Tue) 10:00:14)
うちの場合はアンチウィルスソフトのせいで似たような現象が発生しました。
(接続先はamazonではないですが)
初回のみタイムアウトになり2回目からは快適に取得できるって・・・


試しにアンチウィルスソフトをオフにしてみれば原因の切り分けができるかもしれません。


引用返信 編集キー/
■49976 / inTopicNo.7)  Re[2]: WebRequest.GetResponseの遅さ
□投稿者/ kunina (3回)-(2010/05/25(Tue) 21:26:17)


> 普通のHTTPブラウザで全く同じURIに接続してみて
> 初回が同様に遅いならネットワークの問題、
> 初回でも十分に早いのであれば違うPCで試してみるとよいのでは。

ブラウザで同じURIにアクセスしたところ非常に早く応答がありました。
家ではない違う環境のWindows Xpで確認したところ、初回から早い応答が得られました。

Windows7のせいかと思ったのですが、。よく考えたら前に同現象が出たWEBサービスAPIを使用した時はWindowsXp環境でした。
その時のソフトは今も使っていますが初回が異常に遅いままです。

> 試しにアンチウィルスソフトをオフにしてみれば原因の切り分けができるかもしれません。
オフにしてみましたが改善されませんでした。

> snifferなんかを使って実際のHTTPレベルでどのようなやりとりを行っているかチェックしてみてください。
> 実際には裏で何度かやりとりを行っているような気がします。
snifferとはフリーソフトですよね、使い方が分からないので現在試行錯誤中です。
何か得られればこちらへ書かせていただきます。

他にもGoogleなどで調べたところ、同じような現象が起こった方がされている解決策(IPアドレスを固定にする)を行ってみましたが改善されません。



引用返信 編集キー/
■49982 / inTopicNo.8)  Re[3]: WebRequest.GetResponseの遅さ
□投稿者/ たか (55回)-(2010/05/25(Tue) 22:50:11)
アンチウィルスが犯人ではなかったですか^^

ちなみに自分の場合はアンチウィルスが犯人だとわかって設定を変えることで改善されることもわかったけれど
それをマニュアルに書いたところで読まない人がいたり このアンチウィルスソフトの場合はどうやるの?とかサポートが
メンドイのが目に見えてるので ソフトの起動時に 裏で一回WebRequestを呼ぶようにして逃げました。


根本的な解決ができるのがベストですが もしわからなかったら逃げの手としてこんな方法もありますよ、ってことで すでに考えているかもしれませんがご参考までに。
引用返信 編集キー/
■50030 / inTopicNo.9)  Re[4]: WebRequest.GetResponseの遅さ
□投稿者/ kunina (4回)-(2010/05/26(Wed) 20:36:17)

> ちなみに自分の場合はアンチウィルスが犯人だとわかって設定を変えることで改善されることもわかったけれど
> それをマニュアルに書いたところで読まない人がいたり このアンチウィルスソフトの場合はどうやるの?とかサポートが
> メンドイのが目に見えてるので ソフトの起動時に 裏で一回WebRequestを呼ぶようにして逃げました。

なるほど、そういう手もありますね。
このまま解決策が見つからなかったら、これで行こうと思います。
ありがとうございます!
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -