Прочитать на английском

Поделиться через


FtpWebRequest.UsePassive Свойство

Определение

Возвращает или задает поведение процесса передачи данных в клиентском приложении.

C#
public bool UsePassive { get; set; }

Значение свойства

Значение false, если процесс передачи данных в клиентском приложении прослушивает подключение на порту данных; в противном случае — true, если клиент должен инициировать подключение по порту данных. Значение по умолчанию — true.

Исключения

Для этого свойства задано новое значение для уже выполняющегося запроса.

Примеры

В следующем примере кода извлекаются и отображаются значения свойств для указанного FtpWebRequest объекта.

C#
// DisplayRequestProperties prints a request's properties.
// This method should be called after the request is sent to the server.

private static void DisplayRequestProperties(FtpWebRequest request)
{
    Console.WriteLine("User {0} {1}",
        request.Credentials.GetCredential(request.RequestUri,"basic").UserName,
        request.RequestUri
    );
    Console.WriteLine("Request: {0} {1}",
        request.Method,
        request.RequestUri
    );
    Console.WriteLine("Passive: {0}  Keep alive: {1}  Binary: {2} Timeout: {3}.",
        request.UsePassive,
        request.KeepAlive,
        request.UseBinary,
        request.Timeout == -1 ? "none" : request.Timeout.ToString()
    );
    IWebProxy proxy = request.Proxy;
    if (proxy != null)
    {
        Console.WriteLine("Proxy: {0}", proxy.GetProxy(request.RequestUri));
    }
    else
    {
        Console.WriteLine("Proxy: (none)");
    }

    Console.WriteLine("ConnectionGroup: {0}",
        request.ConnectionGroupName == null ? "none" : request.ConnectionGroupName
    );

    Console.WriteLine("Encrypted connection: {0}",
        request.EnableSsl);

    Console.WriteLine("Method: {0}", request.Method);
}

Комментарии

Если присвоить свойству UsePassive значение , true команда ""PASV" отправляется на сервер. Эта команда запрашивает у сервера прослушивание порта данных и ожидание подключения, а не инициирование при получении команды передачи.

Описание поведения, указанного с помощью UsePassive, см. в статьях RFC 959: "Протокол передачи файлов", Раздел 3.2: "Установка подключений к данным" и Раздел 4.1.2: "Команды параметров передачи".

Изменение UsePassive после вызова GetRequestStreamметода , BeginGetRequestStream, GetResponseили BeginGetResponse вызывает InvalidOperationException исключение.

Если UsePassive для задано значение true, FTP-сервер может не отправлять размер файла, а ход загрузки всегда может быть равен нулю. Если UsePassive задано значение false, брандмауэр может создать оповещение и заблокировать скачивание файла.

Применяется к

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

См. также раздел