FtpWebRequest.UsePassive Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define o comportamento do processo de transferência de dados de uma aplicação cliente.
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
Valor de Propriedade
false se o processo de transferência de dados da aplicação cliente escuta uma ligação na porta de dados; caso contrário, true se o cliente iniciar uma ligação na porta de dados. O valor predefinido é true.
Exceções
Foi especificado um novo valor para esta propriedade para um pedido que já está em curso.
Exemplos
O exemplo de código seguinte recupera e apresenta valores de propriedade para um objeto especificado 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);
}
Observações
Definir a UsePassive propriedade para true envia o comando "PASV" para o servidor. Este comando pede ao servidor que escute numa porta de dados e aguarde por uma ligação em vez de a iniciar após receber um comando de transferência.
Para uma descrição dos comportamentos especificados usando UsePassive, veja RFC 959: "File Transfer Protocol", Secção 3.2: "Estabelecimento de Ligações de Dados" e Secção 4.1.2: "Comandos de Parâmetros de Transferência".
Alterar UsePassive após chamar os métodos GetRequestStream, BeginGetRequestStream, GetResponse ou BeginGetResponse causa uma exceção InvalidOperationException.
Se UsePassive estiver definido para true, o servidor FTP pode não enviar o tamanho do ficheiro, e o progresso do download pode sempre ser zero. Se UsePassive estiver definido para false, um firewall pode emitir um alerta e bloquear o download do ficheiro.