다음을 통해 공유


BITS IIS 확장 속성

BITS(Background Intelligent Transfer Service)는 ISAPI를 사용하여 IIS를 확장하여 업로드 작업을 지원합니다. 다음 표에서는 BITS가 가상 디렉터리 구성 요소의 IIS 메타베이스에 추가하는 속성을 나열합니다. BITS는 이러한 속성을 사용하여 파일을 업로드하는 방법을 결정합니다. BITS IIS 확장 속성은 BITSUploadEnabled를 제외하고 상속할 수 있습니다.

속성 Description
BITSUploadEnabled데이터 형식: 부울
가상 디렉터리에서 BITS 업로드를 사용할 수 있는지 여부를 나타냅니다. 설정이 없거나 0이면 BITS 업로드가 비활성화됩니다.
이 속성은 읽기 전용입니다. 이 속성을 설정하려면 IBITSExtensionSetup 인터페이스의 EnableBITSUploads 또는 DisableBITSUploads 메서드를 호출합니다.
BITSSessionTimeout데이터 형식: DWORD
파일 업로드가 진행되지 않은 경우 연결이 유지되는 시간(초)입니다. 타이머는 진행이 완료되면 다시 설정됩니다. 시간 제한에 도달하면 BITS가 연결을 닫고 세션과 연결된 데이터를 정리합니다.
사용자가 로그온하고 네트워크에 연결된 경우에만 회신이 다운로드되므로 짧은 세션 시간 제한 설정은 업로드-회신 작업에 문제가 될 수 있습니다. 회신이 다운로드되기 전에 세션 시간이 초과될 수 있습니다. 이 경우 세션이 취소되고 회신 파일이 삭제됩니다.
이 설정에 관계없이 JobInactivityTimeout 그룹 정책 값(기본값은 90일)에 도달하면 BITS가 작업을 취소합니다.
기본값은 1,209,600(14일)입니다.
BITSMaximumUploadSize데이터 형식: 문자열
작업당 업로드할 수 있는 최대 바이트 수입니다. 최대 바이트 수를 10진수 문자열로 지정합니다. 문자열 값은 "1844674407370955"보다 작거나 같아야 합니다. 빈 문자열은 "1844674407370955"을 지정하는 것과 같습니다.
기본값은 빈 문자열입니다.
참고: IIS 7에서 기본 업로드 제한은 3,000만 바이트입니다. BITSMaximumUploadSize 속성의 값은 IIS 제한을 초과할 수 없습니다. IIS 기본값 변경에 대한 자세한 내용 및 정보는 KB942074.
BITSServerNotificationType데이터 형식: DWORD
서버 애플리케이션에 업로드 파일을 보내는 방법을 지정합니다. 가능한 값은 0, 1 및 2입니다.
값이 0이면 파일이 서버 애플리케이션으로 전송되지 않습니다. BITS는 서버 애플리케이션에 알리지 않고 원격 이름(작업에 파일을 추가할 때 지정된 원격 이름)에 지정된 디렉터리에 업로드 파일을 배치합니다. 파일이 현재 대상 디렉터리에 있는 경우 업로드 파일로 바뀝니다.
값이 1이면 BITS가 업로드 파일의 위치를 BITSServerNotificationURL 속성에 지정된 서버 애플리케이션에 전달합니다. 서버 애플리케이션은 파일을 처리하고 필요한 경우 회신 파일을 생성합니다. 기본적으로 BITS는 서버 애플리케이션에서 응답을 받은 후 서버에서 업로드 및 회신 파일을 제거합니다. BITS가 작업에서 원격 파일 이름으로 지정된 위치에 업로드 파일을 복사하도록 하려면 응답에 BITS-Copy-File-To-Destination 헤더를 포함합니다. 헤더를 포함하지 않고 업로드 및 회신 파일을 저장하려는 경우 응답하기 전에 업로드 및 회신 파일을 새 위치에 복사해야 합니다.
값이 2이면 BITS가 요청 본문의 업로드 파일을 BITSServerNotificationURL 속성에 지정된 서버 애플리케이션에 전달합니다. 서버 애플리케이션은 파일을 처리하고 필요한 경우 응답 본문의 회신을 다시 전달합니다.
요청 및 응답 헤더에 대한 자세한 내용은 서버 애플리케이션에 대한 알림 프로토콜을 참조하세요.
서버 애플리케이션은 5분 이내에 응답을 제공해야 합니다. 서버 애플리케이션이 5분 이내에 회신하지 않으면 작업이 일시적인 오류 상태가 됩니다. 재시도 지연이 만료되면 BITS 서버는 서버 애플리케이션에 다른 알림을 보냅니다(중복 알림을 처리하기 위해 서버 애플리케이션을 작성해야 함). BITS 1.5: 알림 제한 시간은 30초입니다.

기본값은 0입니다.
BITSServerNotificationURL데이터 형식: 문자열
선택 사항입니다. BITS가 업로드 파일을 게시하는 서버 애플리케이션의 URL을 포함합니다. BITSServerNotificationType 속성의 값이 1 또는 2이면 URL을 지정해야 합니다. URL은 null 종결자를 포함하지 않고 2,200자로 제한됩니다. URL은 HTTP URL이어야 합니다. BITS는 HTTPS 알림 URL을 지원하지 않습니다.
업로드 시 URL을 사용할 수 없는 경우 BITS는 알림 URL이 존재하거나 재시도 기간이 만료될 때까지 업로드를 다시 시도합니다.
작업에 지정된 원격 이름에 쿼리 문자열이 포함된 경우 쿼리 문자열이 지정한 URL에 추가됩니다. 예를 들어 원격 이름에 이 포함되어 https://myserver/myvdir/subdir/file.asp?ACCOUNT=86433 있고 BITSServerNotificationURL 설정을 로 https://otherserver/myvdir2/bag.asp지정하는 경우 BITS가 게시하는 URL은 입니다. https://otherserver/myvdir2/bag.asp?ACCOUNT=86433.
원래 URL이 이 https://myserver/myvdir/file.txt 고 알림 URL이 myasp.asp인 경우 BITS는 알림 URL로 http//myserver/myvdir/myasp.asp를 사용합니다.
URL의 경로 및 파일 이름 부분에 클라이언트와 서버의 코드 페이지에 공통되지 않은 유니코드 문자가 포함되어 있으면 서버에서 URL 변환이 실패하고 BITS 작업이 오류 상태로 배치됩니다. URL의 서버 부분에 유니코드 문자가 포함된 경우 IDN( Internationalized Domain Names )을 사용하여 서버 부분을 인코딩해야 합니다.
BITSHostId데이터 형식: 문자열
서버 설치가 공유 스토리지를 사용하지 않는 웹 팜인 경우 이 속성을 설정합니다.
업로드 프로세스가 중단된 후 다시 연결할 서버의 서버 이름 또는 IP 주소를 지정합니다. 일반적으로 구성 중인 서버의 이름을 지정합니다. URL은 null 종결자를 포함하지 않고 300자로 제한됩니다.
이 속성을 지정하지 않고 업로드 프로세스가 중단되면 BITS가 팜의 다른 서버에서 작업을 다시 시작할 수 있습니다. 그러나 이전 서버에는 중단 이전의 부분 업로드 파일이 여전히 포함되어 있습니다. BITSSessionTimeout이 만료된 후 BITS는 부분 파일을 제거합니다.
참고: 인증서에 클러스터 이름과 개별 서버 이름을 포함하지 않는 한 NLB(네트워크 부하 분산) 또는 여러 IP 주소가 있는 DNS 이름을 사용하는 웹 팜에서 SSL을 사용하는 경우 BITSHostId 속성을 사용하지 마세요. BITSHostId에 지정된 서버 이름이 인증서의 일반 이름과 일치하지 않으면 작업이 실패합니다. 대신 NLB의 경우 선호도 매개 변수를 Single로 설정하여 클라이언트가 나중에 동일한 서버와 통신하도록 합니다.
BITSHostIdFallbackTimeout데이터 형식: DWORD
BITS 클라이언트가 작업의 원격 파일 이름에 지정된 호스트 이름으로 되돌리기 전에 BITSHostId 서버 이름에 다시 연결하려고 시도하는 시간(초)입니다. 타이머는 BITS가 BITSHostId 서버에 연결할 수 없을 때 시작됩니다. 클라이언트가 서버에 성공적으로 연결되면 타이머가 다시 설정됩니다.
작업의 진행률 제한 시간 없음 값( IBackgroundCopyJob::SetNoProgressTimeout 참조)은 이 시간 제한 값보다 길어야 합니다. 그렇지 않으면 대체 시간 제한 값이 만료되기 전에 작업이 실패합니다.
BITSHostId 속성을 설정한 경우에만 이 속성을 설정합니다.
기본값은 86,400(1일)입니다.
BITSAllowOverwrites데이터 형식: 정수
업로드 파일이 동일한 이름의 기존 파일을 덮어쓸 수 있는지 여부를 나타냅니다. BITSAllowOverwrites가 1인 경우 업로드 파일은 기존 파일을 덮어씁니다.
기본값은 0입니다.
IIS 6.0: 스크립트에서만 이 속성을 설정할 수 있으며 IIS 사용자 인터페이스의 BITS 확장 속성 페이지를 사용하여 설정할 수 없습니다.

BITSCleanupUseDefault데이터 형식: 부울
정리 작업이 기본 일정을 사용하는지 여부를 나타냅니다. 기본적으로 정리 작업은 12시간마다 실행됩니다.
기본 일정을 사용하려면 1로 설정합니다. 그렇지 않으면 일정을 지정하려면 0입니다.
일정을 지정하려면 BITSCleanupCountBITSCleanupUnits 속성을 사용합니다.
정리 작업은 세션 제한 시간 내에 수정되지 않은 작업을 삭제하여 가상 디렉터리를 정리합니다( BITSSessionTimeout 참조).
기본값은 기본 일정을 사용하는 1입니다.
IIS 6.0: 지원되지 않습니다.
BITSCleanupCount데이터 형식: 정수
정리 작업을 실행하는 간격을 지정합니다. 지정할 수 있는 간격은 단위에 따라 달라집니다. 가능한 간격 값은 BITSCleanupUnits 속성을 참조하세요.
BITSCleanupUseDefault가 0이면 이 속성은 무시됩니다.
IIS 6.0: 지원되지 않습니다.

BITSCleanupUnits데이터 형식: 정수
BITSCleanupCount 속성에 지정된 정리 간격의 단위를 지정합니다. BITSCleanupUseDefault가 0이면 이 속성은 무시됩니다.
사용 가능한 값은
0: 단위는 분입니다. 가능한 값은 1~60입니다.
1: 단위는 시간입니다. 이것이 기본값입니다. 가능한 값은 1~24입니다.
2: 단위는 일입니다. 가능한 값은 1~360입니다.

IIS 6.0: 지원되지 않습니다.

BITSNumberOfSessionsLimit데이터 형식: 정수
사용자에 대해 동시에 존재할 수 있는 업로드 세션 수를 제한합니다. 사용자에 대한 세션 수가 이 제한을 초과하는 경우 정리 작업이 실행될 때 사용자의 세션 수가 한도 미만이 될 때까지 가장 최근 세션을 삭제합니다.
기본값은 50개의 세션입니다.
IIS 6.0: 지원되지 않습니다.

BITSSessionLimitEnable데이터 형식: 부울
BITS가 사용자당 업로드 세션 수를 제한하는지 여부를 나타냅니다. 설정이 없거나 0이면 제한이 비활성화됩니다.
제한을 지정하려면 BITSNumberOfSessionsLimit 속성을 설정합니다.
기본값은 1입니다.
IIS 6.0: 지원되지 않습니다.

다음 예제에서는 Windows 스크립트 호스트를 사용하여 BITS IIS 확장 속성을 설정하는 방법을 보여 줍니다. 가상 디렉터리가 원격 공유를 가리키는 경우 UNCUserNameUNCPassword IIS 속성도 설정합니다.

if (WScript.Arguments.length < 2)
{
    WScript.Echo("Usage: bitsvdir virtual_directory local_directory");
    WScript.Quit(1);
}

VirtualDirectoryName = WScript.Arguments(0);
LocalDirectoryName = WScript.Arguments(1);

ServerObj = GetObject("IIS://LocalHost/W3SVC/1/ROOT");
VirtualDir = ServerObj.Create("IIsWebVirtualDir", VirtualDirectoryName );

VirtualDir.Path = LocalDirectoryName;
VirtualDir.AppIsolated = 0;
VirtualDir.AccessScript = true;
VirtualDir.AccessRead = false;
VirtualDir.AccessWrite = false;
VirtualDir.SetInfo();

// Set BITS specific IIS configuration settings
VirtualDir.EnableBITSUploads();
VirtualDir.BITSMaximumUploadSize = "4294967296";
VirtualDir.SetInfo();

WScript.Echo( "Created virtual directory " + VirtualDirectoryName + 
              " with a local directory of " + LocalDirectoryName );
WScript.Quit( 0 );