powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ftp.UploadFile
3 сообщений из 3, страница 1 из 1
Ftp.UploadFile
    #38753560
maximIZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Чуть ниже я представлю код выгрузки на фтп. Проблема в том что на одном из хостингов нас начали блокировать с предполагаемой причиной "слишком много соединений". По крайней мере по всем признакам так оно и есть.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
 Private Sub FtpUploadData(Data() As Byte, FileName As String, UserName As String, Password As String, FtpHost As String)

        Dim FtpUri As Uri = BuildUri(FtpHost, FileName)

        If FtpUri Is Nothing Then Return

        Dim Request As FtpWebRequest = FtpWebRequest.Create(FtpUri)
        Dim Stream As System.IO.Stream = Nothing

        Request.Method = Method
        Request.Credentials = New NetworkCredential(UserName, Password)
        Request.KeepAlive = False

        Try
            Stream = Request.GetRequestStream()

            Stream.Write(Data, 0, Data.Length)

            ExportFilesCount += 1
        Catch ex As Net.WebException
            ErrorList.Add(String.Format("{0} {1}", ex.Message, FileName))
        End Try

        Try
            If Stream IsNot Nothing Then Stream.Close()
        Catch ex As Net.WebException
            ErrorList.Add(ex.Message)
        End Try

    End Sub



Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    Public Sub ExportImagesByRoot(ExportFiles As Dictionary(Of Object, String), Connection As SqlConnection, UserName As String, Password As String, FtpHost As String, BW As System.ComponentModel.BackgroundWorker)

        For Each File As KeyValuePair(Of Object, String) In ExportFiles

            Dim Data As Byte() = GetFileData(FileID, Connection)

            If Data IsNot Nothing Then
                FtpUploadData(Data, FileName, UserName, Password, FtpHost)
            End If

        Next

    End Sub



каким образом получается что при такой выгрузке у много соединений с хостингом и нас блочат? Ведь я использую Request.KeepAlive = False который со слов мсдн должен закрывать соединение. Правда там же написано что это происходит при вызове метода Close респонса. Но я ведь респонс не получаю.. он вообще мне не особо нужен. Тогда получается что из-за этого остаются активные все подключения до окончания всей выгрузки? Я не совсем понимаю смысл этой опции
...
Рейтинг: 0 / 0
Ftp.UploadFile
    #38753599
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maximIZ,

Код: vbnet
1.
2.
3.
Using Stream As System.IO.Stream = Request.GetRequestStream()
...
End Using
...
Рейтинг: 0 / 0
Ftp.UploadFile
    #38753615
maximIZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так вот же If Stream IsNot Nothing Then Stream.Close()

ровно тоже самое делает
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ftp.UploadFile
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]