문제

httpwebresponse를 통해 인터넷을 통해 응용 프로그램에서 다운로드하려는 데이터를 다루는 데 큰 문제가 있습니다. 내 코드는 다음과 같습니다.

myWebRequest.Timeout = 10000; 

using (HttpWebResponse myWebResponse = (HttpWebResponse)myWebRequest.GetResponse())
{
     using (Stream ReceiveStream = myWebResponse.GetResponseStream())
     {
         Encoding encode = Encoding.GetEncoding("utf-8");
         StreamReader readStream = new StreamReader(ReceiveStream, encode);
         // Read 1024 characters at a time.
         Char[] read = new Char[1024];

         int count = readStream.Read(read, 0, 1024);

         int break_counter = 0;
         while (count > 0 && break_counter < 10000)
         {
             String str = new String(read, 0, count);
             buffer += str;
             count = readStream.Read(read, 0, 1024);
             break_counter++;
         }
    }
}

이 코드는 분리 된 스레드에서 몇 가지 인스턴스로 실행되므로 디버그하기가 조금 어렵습니다. 문제는이 방법이 붙어 있었고 데이터와의 연결이 좋지 않은 것에 대해 비난한다는 것입니다.

보시다시피 나는 이미 타임 아웃을 설정했고 시간 초과 시간이 만료 된 후 코드가 종료되기를 바랐습니다. 그렇지 않습니다! 적어도 항상 그런 것은 아닙니다. 때로는 WebException/timeout을 얻지 만 몇 번 막 붙어 있습니다.

정확히 타임 아웃은 무엇입니까? 언제 전화합니까? httpwebresponse가 데이터를 받기 시작하지만 전송 중에 어딘가에 붙어 있다고 가정 해 봅시다. 타임 아웃을 받습니까? 나에게는 내 응용 프로그램도 갇히고 시간 초과 예외가 발생하지 않았기 때문에 그렇지 않은 것 같습니다.

이것을 패치하기 위해 무엇을 할 수 있습니까? 여기에서 무엇이 잘못되고 있는지에 대한 추가 정보를 얻을 수있는 방법은 무엇입니까?

도움이 되었습니까?

해결책

설정해보십시오 httpwebrequest.readwritetimeout 속성

글쓰기 또는 독서 시간이 끝나기 전 밀리 초 수. 기본값은 300,000 밀리 초 (5 분)입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top