共用方式為


BITS IIS 擴充功能屬性

背景智慧型手機傳送服務 (BITS) 會使用 ISAPI 來擴充 IIS 以支援 上傳作業。 下表列出 BITS 新增至虛擬目錄元件的 IIS 中繼基底的屬性。 BITS 會使用這些屬性來判斷如何上傳檔案。 BITS IIS 延伸模組屬性是可繼承的,但BITSUploadEnabled除外

屬性 說明
BITSUploadEnabled數據類型: 布爾值
指出虛擬目錄上是否啟用 BITS 上傳。 如果設定不存在或為 0,則會停用 BITS 上傳。
這是一個唯讀屬性。 若要設定這個屬性,請呼叫 IBITSExtensionSetup 介面的 EnableBITSUploads DisableBITSUploads 方法。
BITSSessionTimeout數據類型: DWORD
如果沒有上傳檔案的進度,則維持連線的秒數;進行進度時,定時器會重設。 如果達到逾時,BITS 會關閉連線,並清除與會話相關聯的數據。
設定簡短的會話逾時可能是上傳回復作業的問題,因為只有在使用者登入並連線到網路時才會下載回復。 在下載回復之前,會話可能會逾時,在此情況下,會話會取消並刪除回復檔案。
請注意,如果 達到 JobInactivityTimeout 組策略值(預設值為 90 天),BITS 就會取消作業,而不論此設定為何。
默認值為 1,209,600 (14 天)。
BITSMaximumUploadSize數據類型: 字串
每個作業可以上傳的位元組數目上限。 將位元組數目上限指定為十進位字串;字串值必須小於或等於 「1844674407370955」。 空字串與指定 「1844674407370955」 相同。
預設值為空字串。
注意: 在 IIS 7 中,預設上傳限制為 3000 萬位元組。 BITSMaximumUploadSize 屬性的值不能超過 IIS 限制。 如需變更 IIS 預設值的詳細資訊和資訊,請參閱 KB942074
BITSServerNotificationType數據類型: DWORD
指定如何將上傳檔案傳送至伺服器應用程式。 可能的值為:0、1 和 2。
值為 0 表示檔案不會傳送至伺服器應用程式。 BITS 會將上傳檔案放在遠端名稱中指定的目錄中(當您 將檔案 新增至作業時所指定的遠端名稱),而不通知伺服器應用程式。 如果檔案目前存在於目的地目錄中,則會將其取代為上傳檔案。
值為 1 表示 BITS 會將上傳檔案的位置傳遞至 BITSServerNotificationURL 屬性中指定的伺服器應用程式。 伺服器應用程式會視需要處理檔案並產生回復檔案。 根據預設,BITS 會在從伺服器應用程式收到回應之後,從伺服器移除上傳和回復檔案。 若要讓 BITS 將上傳檔案複製到作業中遠端檔名所指定的位置, 請在回應中包含 BITS-Copy-File-To-Destination 標頭。 如果您未包含標頭,而且您想要儲存上傳和回復檔案,則必須先將上傳和回復檔案複製到新位置,再進行回應。
值為 2 表示 BITS 會將要求主體中的上傳檔案傳遞至 BITSServerNotificationURL 屬性中指定的伺服器應用程式。 如有需要,伺服器應用程式會處理檔案,並在響應主體中傳回回復。
如需要求和回應標頭的詳細資訊,請參閱 伺服器應用程式的通知通訊協定。
伺服器應用程式必須在五分鐘內提供回應。 如果伺服器應用程式未在五分鐘內回復,作業就會進入暫時性錯誤狀態。 當重試延遲到期時,BITS 伺服器會將另一個通知傳送至伺服器應用程式(伺服器應用程式應該寫入以處理重複的通知)。BITS 1.5:通知逾時為 30 秒。

預設值為 0。
BITSServerNotificationURL數據類型: 字串
選擇性。 包含 BITS 張貼上傳檔案之伺服器應用程式的 URL。 如果 BITSServerNotificationType 屬性的值是 1 或 2,您必須指定 URL。 URL 限制為 2,200 個字元,不包括 Null 終止符。 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 會使用 HTTP/myserver/myvdir/myasp.asp 作為通知 URL。
如果 URL 的路徑和檔名部分包含用戶端和伺服器代碼頁中不通用的 Unicode 字元,則 URL 轉譯會在伺服器上失敗,且 BITS 作業會置於錯誤狀態。 如果 URL 的伺服器部分包含 Unicode 字元,您必須使用 國際化功能變數名稱 來編碼伺服器部分(IDN)。
BITSHostId數據類型: 字串
如果伺服器安裝不是使用共用記憶體的 Web 伺服器陣列,請設定此屬性。
指定在上傳程式中斷之後,伺服器要重新連線的伺服器名稱或IP位址。 一般而言,您會指定您要設定的伺服器名稱。 URL 限制為 300 個字元,不包括 Null 終止符。
如果您未指定這個屬性,而且上傳程式中斷,則 BITS 可能會繼續伺服器陣列中另一部伺服器上的作業。 不過,上一部伺服器仍然包含中斷前的部分上傳檔案。 BITS 會在 BITSSessionTimeout 到期之後移除部分檔案。
注意: 除非您在憑證中包含叢集名稱和個別伺服器名稱,否則在使用網路負載平衡 (NLB) 或 DNS 名稱的 Web 伺服器陣列中使用 SSL 時,請勿 使用 BITSHostId 屬性。 (如果 中指定的 伺服器名稱BITSHostId 不符合憑證上的一般名稱,作業將會失敗。相反地,針對 NLB,將 Affinity 參數設定為 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 );