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: "매개 변수 명령 전송"을 참조하세요.
, , GetResponse또는 메서드를 호출한 GetRequestStream후 를 변경 UsePassive 하면 예외가 발생합니다InvalidOperationException.BeginGetResponseBeginGetRequestStream
가 로 true
설정된 경우 UsePassive FTP 서버는 파일 크기를 보내지 않을 수 있으며 다운로드 진행률은 항상 0일 수 있습니다. 이 로 false
설정된 경우 UsePassive 방화벽은 경고를 발생시키고 파일 다운로드를 차단할 수 있습니다.
적용 대상
추가 정보
.NET