BITS IIS 拡張機能のプロパティ
バックグラウンド インテリジェント転送サービス (BITS) は、ISAPI を使用して IIS を拡張し、アップロード ジョブをサポートします。 次の表に、BITS が仮想ディレクトリ コンポーネントの IIS メタベースに追加するプロパティを示します。 BITS はこれらのプロパティを使用して、ファイルのアップロード方法を決定します。 BITS IIS 拡張プロパティは継承可能ですが、BITSUploadEnabled 除きます。
財産 | 形容 |
---|---|
BITSUploadEnabledデータ型: Boolean |
仮想ディレクトリで 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 プロパティで指定されたサーバー アプリケーションに渡します。 サーバー アプリケーションはファイルを処理し、必要に応じて応答の本文で応答を返します。 要求ヘッダーと応答ヘッダーの詳細については、「Server Applicationsの通知プロトコル」を参照してください。 サーバー アプリケーションは、5 分以内に応答を提供する必要があります。 サーバー アプリケーションが 5 分以内に応答しない場合、ジョブは一時的なエラー状態になります。 再試行遅延 期限が切れると、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) または複数の IP アドレスを持つ 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データ型: Boolean |
クリーンアップ タスクが既定のスケジュールを使用するかどうかを示します。 既定では、クリーンアップ タスクは 12 時間ごとに実行されます。 既定のスケジュールを使用するには、1 に設定します。それ以外の場合は 0。スケジュールを指定する場合は 0。 スケジュールを指定するには、BITSCleanupCount を使用し、BITSCleanupUnits プロパティを します。 クリーンアップ タスクは、セッションタイムアウト期間内に変更されていないジョブを削除することで、仮想ディレクトリをクリーンアップします (bitsSessionTimeout 参照)。 既定値は 1 で、既定のスケジュールを使用します。 IIS 6.0: サポートされていません。 |
BITSCleanupCountデータ型: 整数 |
クリーンアップ タスクの実行を待機する間隔を指定します。 指定できる間隔は、単位によって異なります。 指定できる間隔の値については、BITSCleanupUnits プロパティを参照してください。 BITSCleanupUseDefault が 0 の場合、このプロパティは無視されます。 IIS 6.0: サポートされていません。 |
BITSCleanupUnitsデータ型: 整数 |
BITSCleanupCount プロパティで指定されたクリーンアップ間隔の単位を指定します。 BITSCleanupUseDefault が 0 の場合、このプロパティは無視されます。 指定できる値は次のとおりです。
1: 単位は時間です。 これが既定値です。 指定できる値は 1 ~ 24 です。 2: 単位は日です。 指定できる値は 1 から 360 です。 IIS 6.0: サポートされていません。 |
BITSNumberOfSessionsLimitデータ型: 整数 |
ユーザーに対して同時に存在できるアップロード セッションの数を制限します。 ユーザーのセッション数がこの制限を超える場合、クリーンアップ タスクの実行時に、ユーザーのセッション数が制限を下回るまで、最新のセッションが削除されます。 既定値は 50 セッションです。 IIS 6.0: サポートされていません。 |
BITSSessionLimitEnableデータ型: Boolean |
BITS がユーザーごとのアップロード セッションの数を制限するかどうかを示します。 設定が存在しない場合、または 0 の場合、制限は無効になります。 制限を指定するには、BITSNumberOfSessionsLimit プロパティを設定します。 既定値は 1 です。 IIS 6.0: サポートされていません。 |
次の例は、Windows スクリプト ホストを使用して BITS IIS 拡張機能プロパティを設定する方法を示しています。 仮想ディレクトリがリモート共有を指している場合は、UNCUserName を設定し、UNCPassword 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 );