IBackgroundCopyJob::SetProxySettings 메서드(bits.h)

파일을 전송하는 데 사용할 프록시를 지정합니다.

구문

HRESULT SetProxySettings(
  [in] BG_JOB_PROXY_USAGE ProxyUsage,
  [in] const WCHAR        *ProxyList,
  [in] const WCHAR        *ProxyBypassList
);

매개 변수

[in] ProxyUsage

사용자의 프록시 설정을 사용할지, 프록시를 사용하지 않을지, 애플리케이션에서 지정한 프록시 설정을 사용할지를 지정합니다. 기본값은 BG_JOB_PROXY_USAGE_PRECONFIG 사용자의 프록시 설정을 사용하는 것입니다. 프록시 옵션 목록은 BG_JOB_PROXY_USAGE 열거형을 참조하세요.

[in] ProxyList

파일을 전송하는 데 사용할 프록시가 포함된 Null로 끝나는 문자열입니다. 목록은 공백으로 구분됩니다. 프록시 지정에 대한 자세한 내용은 비고를 참조하세요.

ProxyUsage 값이 BG_JOB_PROXY_USAGE_PRECONFIG, BG_JOB_PROXY_USAGE_NO_PROXY또는BG_JOB_PROXY_USAGE_AUTODETECT 경우 이 매개 변수는 NULL이어야 합니다.

프록시 목록의 길이는 null 종결자를 포함하지 않고 4,000자로 제한됩니다.

[in] ProxyBypassList

프록시를 바이패스할 수 있는 호스트 이름, IP 주소 또는 둘 다의 선택적 목록을 포함하는 Null로 끝나는 문자열입니다. 목록은 공백으로 구분됩니다. 바이패스 프록시 지정에 대한 자세한 내용은 비고를 참조하세요.

ProxyUsage 값이 BG_JOB_PROXY_USAGE_PRECONFIG, BG_JOB_PROXY_USAGE_NO_PROXY또는BG_JOB_PROXY_USAGE_AUTODETECT 경우 이 매개 변수는 NULL이어야 합니다.

프록시 바이패스 목록의 길이는 null 종결자를 포함하지 않고 4,000자로 제한됩니다.

반환 값

이 메서드는 다음 HRESULT 값과 다른 값을 반환합니다.

반환 코드 설명
S_OK
프록시가 성공적으로 지정되었습니다.
E_NOTIMPL
ProxyUsage의 값은 BG_JOB_PROXY_USAGE 열거형에 정의되어 있지 않습니다.
BG_E_PROXY_LIST_TOO_LARGE
pProxyList 버퍼는 32KB를 초과할 수 없습니다.
BG_E_PROXY_BYPASS_LIST_TOO_LARGE
pProxyBypassList는 32KB를 초과할 수 없습니다.
BG_E_INVALID_STATE
작업의 상태는 BG_JOB_STATE_CANCELLED 또는 BG_JOB_STATE_ACKNOWLEDGED 수 없습니다.
E_INVALIDARG
ProxyUsageBG_JOB_PROXY_USAGE_OVERRIDE 경우 pProxyList 매개 변수는 NULL일 수 없습니다.

설명

제공하는 프록시 정보는 런타임에 유효성이 검사됩니다. 프록시 정보가 유효하지 않으면 작업이 BG_E_INVALID_PROXY_INFO 오류 코드와 함께 BG_JOB_STATE_ERROR 상태가 됩니다.

서비스가 LocalSystem으로 실행되는 경우 SetProxySettings 메서드를 사용하여 계정에 대한 프록시 또는 프록시 바이패스 목록을 명시적으로 지정하고 ProxyUsageBG_JOB_PROXY_USAGE_OVERRIDE 설정해야 합니다. BITS에서 시스템 계정을 사용하는 방법에 대한 자세한 내용은 서비스 계정 및 BITS를 참조하세요.

BITS는 Proxycfg.exe 파일을 사용하여 설정된 프록시 설정을 인식하지 못합니다.

프록시를 다음으로 지정합니다.

"[protocol=][protocol"://"]server[":"port]"

유효한 프로토콜은 HTTP 및 HTTPS입니다. 프록시 목록에는 프록시에 액세스하는 데 사용되는 포트 번호가 포함될 수 있습니다. 예를 들어 HTTP 프록시를 나열하려면 유효한 문자열은 "http=http://http_proxy_name:80"입니다. 여기서 http_proxy_name 프록시 서버의 이름이고 80은 프록시에 액세스하는 데 사용해야 하는 포트 번호입니다. 프록시가 해당 프로토콜에 대한 기본 포트 번호를 사용하는 경우 포트 번호를 생략할 수 있습니다. 프록시 이름이 단독으로 나열된 경우 지정된 프록시가 없는 모든 프로토콜의 기본 프록시로 사용할 수 있습니다. 예를 들어 "http=http://http_proxyother_proxy"은 모든 HTTP 작업에 http_proxy 사용하고 HTTPS 프로토콜은 other_proxy 프록시를 사용합니다.

프록시 바이패스 목록에서 로컬로 알려진 호스트 이름 또는 IP(인터넷 프로토콜) 주소를 나열할 수 있습니다. 이 이름에는 지정된 패턴에 맞는 주소(예: ".microsoft.com" 또는 ".org")에 대해 애플리케이션이 프록시 서버를 우회하게 하는 ""와 같은 와일드카드가 포함될 수 있습니다. 와일드카드 문자는 이름에서 가장 왼쪽에 있는 문자여야 합니다. 예: "aaa." 가 지원되지 않습니다. 로컬 매크로를 <지정하여 모든 로컬> 인트라넷 사이트가 무시됨을 나타낼 수 있습니다. 로컬 인트라넷 사이트는 이름에 마침표가 포함되지 않은 모든 서버로 간주됩니다.

애플리케이션에서 프록시 사용을 지정하지 않는 경우 BITS는 사용자의 인터넷 Explorer 프록시 설정을 사용합니다. 이 기본 동작은 일반적으로 애플리케이션이 대화형 사용자의 컨텍스트에서 작업을 제출하는 경우 작동하지만 LocalSystem으로 실행되는 서비스가 작업을 제출하는 경우 작동하지 않을 수 있습니다. LocalSystem에 대한 인터넷 Explorer 프록시 설정을 지정할 수 있지만 문제가 발생할 때 이러한 설정을 검색하기는 어렵습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP
지원되는 최소 서버 Windows Server 2003
대상 플랫폼 Windows
헤더 bits.h
라이브러리 Bits.lib
DLL QmgrPrxy.dll

추가 정보

BG_JOB_PROXY_USAGE

IBackgroundCopyJob::GetProxySettings