FtpWebRequest.UsePassive Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает поведение процесса передачи данных в клиентском приложении.
public:
property bool UsePassive { bool get(); void set(bool value); };
public bool UsePassive { get; set; }
member this.UsePassive : bool with get, set
Public Property UsePassive As Boolean
Значение свойства
Значение false, если процесс передачи данных в клиентском приложении прослушивает подключение на порту данных; в противном случае — true, если клиент должен инициировать подключение по порту данных. Значение по умолчанию — true.
Исключения
Для этого свойства задано новое значение для уже выполняющегося запроса.
Примеры
В следующем примере кода извлекаются и отображаются значения свойств для указанного FtpWebRequest объекта.
// 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, брандмауэр может создать оповещение и заблокировать скачивание файла.