FtpWebRequest.UsePassive プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
クライアント アプリケーションのデータ転送処理の動作を取得または設定します。
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
プロパティ値
クライアント アプリケーションのデータ転送処理がデータ ポートで接続を待機する場合は false
。それ以外で、クライアントがデータ ポートで接続を開始する必要がある場合は true
。 既定値は true
です。
例外
既に処理中の要求で、このプロパティに対して新しい値が指定されました。
例
次のコード例では、指定した 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);
}
注釈
プロパティを UsePassive に設定すると true
、 "PASV"
コマンドがサーバーに送信されます。 このコマンドは、転送コマンドを受信したときに接続を開始するのではなく、データ ポートでリッスンし、接続を待機するようにサーバーに要求します。
を使用して UsePassive指定される動作の説明については、 RFC 959: "ファイル転送プロトコル"、セクション 3.2: "データ接続の確立" およびセクション 4.1.2: "パラメーター コマンドの転送" を参照してください。
、BeginGetRequestStream、、または BeginGetResponse メソッドを呼び出した後に GetRequestStreamを変更UsePassiveすると、例外がInvalidOperationException発生GetResponseします。
が にtrue
設定されている場合UsePassive、FTP サーバーはファイルのサイズを送信せず、ダウンロードの進行状況は常に 0 にすることができます。 が にfalse
設定されている場合UsePassive、ファイアウォールはアラートを発生させ、ファイルのダウンロードをブロックできます。
適用対象
こちらもご覧ください
.NET