मैं एक विशिष्ट साइट के लिए एक वेब क्रॉलर लिख रहा हूं। एप्लिकेशन एक वीबी.Net विंडोज फॉर्म एप्लिकेशन है जो एकाधिक थ्रेड का उपयोग नहीं करता है - प्रत्येक वेब अनुरोध लगातार होता है। हालांकि, दस सफल पृष्ठ के बाद हर लगातार अनुरोध समय वापस प्राप्त होता है।दस कंसल्टिव अनुरोधों के बाद HttpWebRequest टाइमआउट
मैं इसी तरह के सवाल पहले से ही इतने पर यहां पोस्ट की समीक्षा की है, और मेरे GetPage दिनचर्या में सिफारिश की तकनीक, नीचे दिखाया गया है को लागू किया है:
Public Function GetPage(ByVal url As String) As String
Dim result As String = String.Empty
Dim uri As New Uri(url)
Dim sp As ServicePoint = ServicePointManager.FindServicePoint(uri)
sp.ConnectionLimit = 100
Dim request As HttpWebRequest = WebRequest.Create(uri)
request.KeepAlive = False
request.Timeout = 15000
Try
Using response As HttpWebResponse = DirectCast(request.GetResponse, HttpWebResponse)
Using dataStream As Stream = response.GetResponseStream()
Using reader As New StreamReader(dataStream)
If response.StatusCode <> HttpStatusCode.OK Then
Throw New Exception("Got response status code: " + response.StatusCode)
End If
result = reader.ReadToEnd()
End Using
End Using
response.Close()
End Using
Catch ex As Exception
Dim msg As String = "Error reading page """ & url & """. " & ex.Message
Logger.LogMessage(msg, LogOutputLevel.Diagnostics)
End Try
Return result
End Function
मैं कुछ छूट गया है? क्या मैं किसी ऑब्जेक्ट को बंद या निपटाना नहीं चाहता हूं? यह अजीब लगता है कि यह लगातार दस अनुरोधों के बाद होता है।
नोट्स:
वर्ग के लिए निर्माता जिसमें इस विधि मैं निम्नलिखित है वास:
ServicePointManager.DefaultConnectionLimit = 100
अगर मैं सच करने के लिए KeepAlive निर्धारित करते हैं, टाइमआउट पांच अनुरोधों के बाद शुरू होता है।
सभी अनुरोध एक ही डोमेन में पृष्ठों के लिए हैं।
संपादित
मैं इतना है कि मैं करने के लिए साइट "चोट" या एक डॉस हमले प्रयास दिखाई नहीं देते हैं दो से सात सेकंड के प्रत्येक वेब अनुरोध के बीच भी विलंब गयी। हालांकि, समस्या अभी भी होती है।
ऐप होस्ट करने वाले वेब सर्वर का उत्पाद नाम और संस्करण क्या है? – David
आईआईएस 5 – David
के लिए 10 कनेक्शन सीमा है मैं उत्सुक हूं - क्या आपने कभी कारण को कम किया है? मैं एक ही समस्या में भाग रहा हूँ। –