FtpWebRequest.UsePassive Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit le comportement du processus de transfert de données d'une application 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
Valeur de propriété
false
si le processus de transfert de données de l'application cliente est à l'écoute d'une connexion sur le port de données ; sinon, true
si le client doit initialiser une connexion sur le port de données. La valeur par défaut est true
.
Exceptions
Une nouvelle valeur a été spécifiée pour cette propriété pour une demande qui est déjà en cours.
Exemples
L’exemple de code suivant récupère et affiche les valeurs de propriété d’un objet spécifié FtpWebRequest .
private:
// DisplayRequestProperties prints a request's properties.
// This method should be called after the request is sent to the server.
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 )
{
Console::WriteLine( "Proxy: {0}", proxy->GetProxy( request->RequestUri ) );
}
else
{
Console::WriteLine( "Proxy: (none)" );
}
Console::WriteLine( "ConnectionGroup: {0}", request->ConnectionGroupName == nullptr ? "none" : request->ConnectionGroupName );
Console::WriteLine( "Encrypted connection: {0}", request->EnableSsl );
Console::WriteLine("Method: {0}", request->Method);
}
// 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);
}
Remarques
La définition de la UsePassive propriété sur true
envoie la commande «PASV"
au serveur. Cette commande demande au serveur d’écouter sur un port de données et d’attendre une connexion au lieu d’en lancer une à la réception d’une commande de transfert.
Pour obtenir une description des comportements spécifiés à l’aide UsePassivede , consultez RFC 959 : « Protocole de transfert de fichiers », Section 3.2 : « Établissement de connexions de données » et Section 4.1.2 : « Commandes de paramètre de transfert ».
La modification UsePassive après l’appel de la GetRequestStreamméthode , BeginGetRequestStream, GetResponseou BeginGetResponse provoque une InvalidOperationException exception.
Si UsePassive est défini sur , le serveur FTP peut ne pas envoyer la taille du fichier et la progression du téléchargement peut toujours être égale à true
zéro. Si UsePassive est défini sur false
, un pare-feu peut déclencher une alerte et bloquer le téléchargement du fichier.