2010-12-12 4 views
2

私のサーバーのログによると、次のスクリプトは1つではなく2つのWeb要求を行うようです。毎回2回目のリクエストはちょうど2分後です。私は1つの要求がほしい。私は何が欠けていますか?なぜこのpowershellスクリプトは2つのWebリクエスト(System.Net.HttpWebRequest)を作成しますか?

# create the web request 
$request = [System.Net.HttpWebRequest]::Create($url) 
# set the timeout to 1 hour 
$request.Timeout = 3600000 

# get the response and stream 
Write-Host "GetResponse() start" 
$response = $request.GetResponse() 
Write-Host "GetResponse() done" 

Write-Host "GetResponseStream() start" 
$stream = $response.GetResponseStream() 
Write-Host "GetResponseStream() end" 

# read the stream 
Write-Host "Read stream start" 
$reader = New-Object IO.StreamReader($stream) 
$html = $reader.ReadToEnd() 
Write-Host "Read stream end" 

# output the html response 
Write-Host $html 

# clean up resources 
$reader.Close() 
$stream.Close() 
$response.Close() 

Write-Host "Done" 
+0

このスクリプトの実行にはどのくらいの時間がかかりますか? –

+0

5〜15分。 – jrummell

+0

リクエストされたWebページのタイムアウトの問題を回避するために、私はThreadPoolを使用して、時間のかかる処理に新しいスレッドを開始しました。 psスクリプトは非常に速く実行され、1つのWeb要求だけを作成します。私はまだ不思議です。 – jrummell

答えて

0

これは応答ではなくヘルプの要素です。

私はPowerGuyでPowerShellコードをコピー/パースし、$ urlを ""で初期設定します。 その後、私は自分のコンピュータにWireShark(オープンソーススニファ)を起動します。ここでは、キャプチャの下に見つけることができます。

enter image description here

それは一つだけ答え/応答を示しています。私は他のフレームを抑制しますが、私はGoogleから「ハートビート」を受信し、それ以外は何もせず、2分以上待っています。

もう一度、それは答えではなく、応答の要素です。おそらくWireSharkをインストールする仮想マシンからスクリプトを起動する必要があります。

あなたのサーバーのURL、サーバーの種類とテクノロジを教えてください。

私はそれが役に立ちそうです。

JP

+0

情報ありがとうございます。サーバーのURLは公開されていませんが、テストの提供に感謝します。私はチャンスがあるときにWireSharkでもう一度試してみます。 – jrummell

関連する問題