9

URL から XML ストリームを取得しようとしています。ほとんどの URL で、以下のコードは問題なく動作します。しかし、タイムアウトする URL がいくつかあります。問題の URL はInternet Explorer から機能します

$webclient=New-Object "System.Net.WebClient"
[xml]$data=$webclient.DownloadString($url)

そこで、タイムアウト期間を延長する方法を探しました。私が読んだことから、を使用してこれを行うことはできないと思いますSystem.Net.WebClient。代わりに使用する必要があると思いますがSystem.Net.WebRequest、機能させることができません。私が取り組んできたコードは以下のとおりです。

$myHttpWebRequest = [system.net.WebRequest]::Create($url)
$myHttpWebRequest.Timeout = 600000
$myHttpWebResponse = $myHttpWebRequest.GetResponse()
$sr = New-Object System.IO.StreamReader($response.GetResponseStream())
[xml]$xml = [xml]$sr.ReadToEnd()

アクセスしようとしている URL は社内のものであるため、投稿できません。ただし、それらは IE で動作し、実際の URL は関係ありません。

アイデア?

編集: 予備テストでは、追加が$myHttpWebRequest.AuthenticationLevel = "None"機能することが示されています。ありがとうスコット・サード。

4

1 に答える 1

6

デフォルトでは、WebRequest.AuthenticationLevelはMutualAuthRequestedに設定されているため、何らかのタイプの認証応答を待ちます。したがって、認証が発生するのを待っている間にタイムアウトを超えている可能性があります。資格情報をいじっているようには見えなかったので、認証が必要でない限り、おそらくこれは必要ありません。WebRequestを作成したら、次のようなことを試してください。

$myHttpWebRequest.AuthenticationLevel = "None"

これが問題の解決に役立つことを願っています。

于 2008-10-16T18:55:45.520 に答える