FtpWebRequest.UsePassive Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví chování procesu přenosu dat klientské aplikace.
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
Hodnota vlastnosti
false
pokud proces přenosu dat klientské aplikace naslouchá připojení na datovém portu; v opačném případě, true
pokud by klient měl zahájit připojení na datovém portu. Výchozí hodnota je true
.
Výjimky
Byla zadána nová hodnota pro tuto vlastnost pro požadavek, který již probíhá.
Příklady
Následující příklad kódu načte a zobrazí hodnoty vlastností pro zadaný FtpWebRequest objekt.
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);
}
Poznámky
UsePassive Nastavení vlastnosti na true
odeslání příkazu "PASV"
na server. Tento příkaz požádá server, aby naslouchal na datovém portu a čekal na připojení, a nespouštět ho po přijetí příkazu pro přenos.
Popis chování, která jsou určena pomocí UsePassive, najdete v rfc 959: "File Transfer Protocol", Oddíl 3.2: "Navazování datových připojení" a Oddíl 4.1.2: "Přenos příkazů parametrů".
Změna UsePassive po volání GetRequestStreammetody , BeginGetRequestStream, GetResponsenebo BeginGetResponse způsobí InvalidOperationException výjimku.
Pokud UsePassive je nastavená hodnota true
, server FTP nemusí odesílat velikost souboru a průběh stahování může být vždy nulový. Pokud UsePassive je nastavená hodnota false
, brána firewall může vyvolat upozornění a blokovat stahování souboru.