FtpWebRequest.UsePassive Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İ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 Bağlantıları Kurma" 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.