2012-07-04 23 views
10

tôi có mã này trong ứng dụng giao diện điều khiển và nó chạy trong một vòng lặpKhông thể đọc dữ liệu từ kết nối giao thông: Kết nối là lỗi kín trong ứng dụng giao diện điều khiển

try 
{ 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(search); 
     request.Headers.Add("Accept-Language", "de-DE"); 
     request.Method = "GET"; 
     request.Accept = "text/html"; 
     using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
     { 
      using (StreamReader reader = new StreamReader(response.GetResponseStream(), 
        Encoding.ASCII)) 
      { 
       string html = reader.ReadToEnd(); 
        FindForMatch(html, url); 
      } 
     } 
} 
catch (Exception ex) 
{ 
     throw new Exception(ex.Message); 
} 

sau vài vòng nó mang lại cho

Không thể đọc dữ liệu từ kết nối giao thông: Kết nối đã bị đóng

lỗi. bất kỳ ý tưởng tại sao điều này xảy ra? thanx ..

+0

Có thể là bất cứ điều gì. Có lẽ các máy chủ không thích bạn búa nó. – leppie

+4

Btw, không tái ném ngoại lệ của bạn, tốt hơn đăng nhập ngoại lệ của bạn hoặc để cho các bong bóng ngoại lệ lên đến một vị trí cao hơn, và bắt nó có – JohnnBlade

+0

ngoại lệ đến từ 'reader.ReadToEnd() ' – Darshana

Trả lời

22

Sau khi thêm

request.KeepAlive = false; 
request.ProtocolVersion = HttpVersion.Version10; 

nó hoạt động tốt ..

tôi thấy nó tạo bài blog này

WebRequest and Unable to read data from the transport connection Error

+0

Hmm, tôi không biết tại sao công trình này lại hoạt động, nhưng nó có! Kỳ dị! Có thể đó là IIS Express hay gì đó. – fourpastmidnight

+0

Cảm ơn bạn rất nhiều, nó đã làm việc trong trường hợp của tôi, tôi đã đấu tranh một thời gian. –

+2

Tại sao không hoạt động với HTTP 1.1? –

0

Tôi vừa thử mã, lặp 10 lần để tải google.com và nó hoạt động với tôi. Có điều gì đặc biệt về search - có thể thử thay thế bằng một uri khác. Tôi không bao gồm findForMatch - Tôi cho rằng nó không làm bất cứ điều gì gây ra ngoại lệ.

+0

nó không xảy ra tất cả các thời gian. ngoại lệ đến từ 'reader.ReadToEnd() ' – Darshana

-5

Cố gắng xử lý người đọc trong cuối cùng khối catch của bạn

+4

-1: Trả lời không có ý nghĩa. – leppie