FtpWebRequest.UsePassive Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta il comportamento del processo di trasferimento dei dati di un'applicazione client.
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
Valore della proprietà
false
se il processo di trasferimento dei dati dell'applicazione client attende una connessione sulla porta dati; in caso contrario, true
se il client deve avviare una connessione sulla porta dati. Il valore predefinito è true
.
Eccezioni
È stato specificato un nuovo valore per questa proprietà per una richiesta già in corso.
Esempio
Nell'esempio di codice seguente vengono recuperati e visualizzati i valori delle proprietà per un oggetto specificato 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);
}
Commenti
L'impostazione della UsePassive proprietà su true
invia il comando "PASV"
al server. Questo comando richiede al server di restare in ascolto su una porta dati e di attendere una connessione anziché avviarne una al ricevimento di un comando di trasferimento.
Per una descrizione dei comportamenti specificati tramite UsePassive, vedere RFC 959: "File Transfer Protocol", sezione 3.2: "Definizione dei dati Connections" e sezione 4.1.2: "Comandi dei parametri di trasferimento".
La modifica UsePassive dopo la chiamata al GetRequestStreammetodo , BeginGetRequestStreamGetResponse, o BeginGetResponse causa un'eccezioneInvalidOperationException.
Se UsePassive è impostato su true
, il server FTP potrebbe non inviare le dimensioni del file e lo stato di avanzamento del download può essere sempre zero. Se UsePassive è impostato su false
, un firewall può generare un avviso e bloccare il download del file.
Si applica a
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per