2014-12-24 3 views
0

여기서 https://stackoverflow.com/a/16977731/2262863의 코드를 사용했으며 서버가 404 응답을 반환 할 때 문제가 발생했습니다. 응답이 200 회 반환 된 경우에만 url을 처리하도록 추가했습니다. 그러나 내가 본 것으로부터, 코드는 다른 URL을 계속 사용하지 않습니다. 다음은 내가 받고있는 오류입니다.404 병렬 작업의 httpwebrequest 예외

System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host 

작업을 중지하려고 시도했지만 동일한 문제가 있습니다.

+0

당신의'GetResponse' 또는'GetResponseStream'는 (응답 상태 코드를 확인할 기회가 있기 전에) 처리되지 않은 예외를 던지고 있습니다. 조심하는 한 간단한 '시도/포착'으로 충분합니다. 링크는 .NET 4.0 솔루션이 구체적으로 요청 된 질문을 가리 킵니다. 4.5를 목표로한다면, IO 바인딩 된 시나리오에서'async/await'를 사용할 수 있기 때문에'Parallel.ForEach'와 작업 계속은 적절하지 않습니다. –

+0

@Kirill Shlenskiy NET 4.0을 사용하고 있습니다.하지만 계속해서 추가 할 방법이 없습니다. 어떻게 변경 했습니까? '사용 = DirectCast (request.GetResponse(), HttpWebResponse) response.StatusCode = System.Net.HttpStatusCode.OK 그러면'이제는 웹 응답 읽기를 실행합니다. – Chelovek

+0

@KirillShlenskiy'try/catch' 방법이 작동합니다. 감사합니다. – Chelovek

답변

0

Sub(word)이 시작되는 줄 뒤에 try/catch 메서드를 추가했습니다.

Try Dim url = word Dim request = DirectCast(WebRequest.Create(url), HttpWebRequest)

End Using Catch ex As Exception Console.WriteLine(ex.toString) End Try End Sub)

..........

그래서 작업이 계속 프로세스 어쩌려 구`t 정지된다.

관련 문제