Sdílet prostřednictvím


FtpWebRequest.UsePassive Vlastnost

Definice

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.

Platí pro

Viz také