Compartilhar via


FtpWebRequest.UsePassive Propriedade

Definição

Obtém ou define o comportamento do processo de transferência de dados de um aplicativo 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 da propriedade

false se o processo de transferência de dados do aplicativo cliente escutar uma conexão na porta de dados; caso contrário, true, se o cliente dever iniciar uma conexão na porta de dados. O valor padrão é true.

Exceções

Um novo valor foi especificado para essa propriedade referente a uma solicitação já em andamento.

Exemplos

O exemplo de código a seguir recupera e exibe 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);
}

Comentários

Definir a UsePassive propriedade para true envia o comando "PASV" para o servidor. Esse comando solicita que o servidor escute em uma porta de dados e aguarde uma conexão em vez de iniciar uma após o recebimento de um comando de transferência.

Para obter uma descrição dos comportamentos especificados usando UsePassive, consulte RFC 959: "File Transfer Protocol", Seção 3.2: "Estabelecendo conexões de dados" e Seção 4.1.2: "Comandos de parâmetro de transferência".

Alterar UsePassive depois de chamar o GetRequestStreammétodo , BeginGetRequestStreamGetResponse, ou BeginGetResponse causa uma exceçãoInvalidOperationException.

Se UsePassive for definido como true, o servidor FTP poderá não enviar o tamanho do arquivo e o progresso do download sempre poderá ser zero. Se UsePassive estiver definido como false, um firewall poderá gerar um alerta e bloquear o download do arquivo.

Aplica-se a

Confira também