FtpWebRequest.UsePassive Özellik

Tanım

İstemci uygulamasının veri aktarım işleminin davranışını alır veya ayarlar.

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

Özellik Değeri

false istemci uygulamasının veri aktarım işlemi veri bağlantı noktasında bir bağlantı dinlerse; aksi takdirde, true istemcinin veri bağlantı noktasında bir bağlantı başlatması gerekiyorsa. true varsayılan değerdir.

Özel durumlar

Devam etmekte olan bir istek için bu özellik için yeni bir değer belirtildi.

Örnekler

Aşağıdaki kod örneği, belirtilen FtpWebRequest nesnenin özellik değerlerini alır ve görüntüler.

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);
}

Açıklamalar

UsePassive özelliğini olarak true ayarlayarak "PASV" komutunu sunucuya gönderir. Bu komut, sunucudan bir veri bağlantı noktasını dinlemesini ve aktarım komutu alındıktan sonra bir bağlantı başlatmak yerine bağlantıyı beklemesini istemektedir.

kullanılarak UsePassivebelirtilen davranışların açıklaması için bkz. RFC 959: "Dosya Aktarım Protokolü", Bölüm 3.2: "Veri Connections Oluşturma" ve Bölüm 4.1.2: "Parametre Komutlarını Aktarma".

, , GetResponseBeginGetRequestStreamveya BeginGetResponse yöntemi çağrıldıktan GetRequestStreamsonra değiştirilmesi UsePassive özel duruma InvalidOperationException neden olur.

olarak ayarlanırsa UsePassivetrue, FTP sunucusu dosyanın boyutunu göndermeyebilir ve indirme ilerleme durumu her zaman sıfır olabilir. olarak ayarlanırsa UsePassivefalse, bir güvenlik duvarı uyarı verebilir ve dosya indirmeyi engelleyebilir.

Şunlara uygulanır

Ayrıca bkz.