HttpWebRequest "Операция истекла" - PullRequest
1 голос
/ 26 мая 2011

Я использую httpWebRequest в своем приложении для Windows для загрузки файлов с веб-сервера (sURL) в локальную папку (fileDestination) следующим образом:

Public Function DownloadFile(ByVal sURL As String, _
                        ByVal fileDestination As String, _
                        ByVal WebRequestType As String) As Boolean  


    Dim URLReq As HttpWebRequest
        Dim URLRes As HttpWebResponse
        Dim FileStreamer As FileStream
        Dim bBuffer(999) As Byte
        Dim iBytesRead As Integer
        Dim folderDestination As String
        Dim sChunks As Stream

        Try

            FileStreamer = New FileStream(fileDestination, FileMode.Create)

            URLReq = WebRequest.Create(sURL)
            URLRes = URLReq.GetResponse 'Error occurs here!!
            sChunks = URLReq.GetResponse.GetResponseStream
            DownloadProgressBar.Value = 0
            DownloadProgressBar.Maximum = URLRes.ContentLength

            Do
                iBytesRead = sChunks.Read(bBuffer, 0, 1000)
                FileStreamer.Write(bBuffer, 0, iBytesRead)
            Loop Until iBytesRead = 0

            sChunks.Close()
            FileStreamer.Close()
            URLRes.Close()

            Return True
        Catch ex As Exception
            Return False
        End Try

End Function

Это отлично работает для первых нескольких файлов.Но затем он начинает выдавать следующую ошибку в строке URLReq.GetResponse:

"истекло время ожидания операции"

Кто-нибудь знает, что может быть причиной этого?

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

Если вы ориентируетесь на платформу 1.1 и выполняете несколько одновременных запросов, попробуйте установить System.Net.ServicePointManager.DefaultConnectionLimit

1 голос
/ 26 мая 2011

Время ожидания установлено на 10000 миллисекунд (или 10 секунд). Это достаточно долго для туда и обратно на веб-сервер?

Документация MSDN говорит, что по умолчанию установлено значение 100 секунд (100000 мс). Есть ли причина, по которой вы изменили это значение по умолчанию?

...