2008-10-16 4 views
9

से एक्सएमएल पुनर्प्राप्त करने के लिए टाइमआउट बढ़ाएं मैं एक यूआरएल से एक्सएमएल स्ट्रीम पुनर्प्राप्त करने की कोशिश कर रहा हूं। अधिकांश यूआरएल के लिए नीचे मेरा कोड ठीक काम करता है। लेकिन, मेरे पास कुछ यूआरएल हैं जो टाइमआउट करते हैं। प्रश्न में यूआरएल इंटरनेट एक्सप्लोरर से काम करते हैं।पावरहेल - यूआरएल

$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() 

यूआरएल मैं उपयोग करने के लिए कोशिश कर रहा हूँ मेरी कंपनी के लिए आंतरिक हैं, इसलिए मैं उन्हें पोस्ट नहीं कर सकते। लेकिन, वे आईई में काम करते हैं और वास्तविक यूआरएल अप्रासंगिक होना चाहिए।

विचार?

संपादित करें: प्रारंभिक परीक्षण से पता चलता है कि $myHttpWebRequest.AuthenticationLevel = "None" काम करता है। धन्यवाद स्कॉट साद।

उत्तर

6

डिफ़ॉल्ट WebRequest.AuthenticationLevelपर सेट किया जाता द्वारा MutualAuthRequested, इसलिए यह प्रमाणीकरण प्रतिक्रिया के कुछ प्रकार के लिए इंतजार करेंगे। इसलिए, प्रमाणीकरण होने की प्रतीक्षा करते समय एक टाइमआउट संभवतः पार हो रहा है। ऐसा लगता है कि आप प्रमाण-पत्रों के साथ गड़बड़ कर रहे थे, जब तक कि आपको प्रमाणीकरण की आवश्यकता न हो, आपको शायद इसकी आवश्यकता नहीं होगी। आप बनाने के बाद निम्नलिखित की तरह कुछ की कोशिश करो अपने WebRequest:

$myHttpWebRequest.AuthenticationLevel = "None" 

मुझे आशा है कि इस मदद करता है समस्या का समाधान।