仮想ディレクトリに対するアクセス許可の設定
セキュリティ上の理由から、バックグラウンド インテリジェント転送サービス (BITS) は、スクリプト作成および実行アクセス許可が有効になっている仮想ディレクトリにファイルをアップロードしません。 これらのアクセス許可が有効になっている仮想ディレクトリにファイルをアップロードすると、ジョブはエラー コード BG_E_Standard EditionRVER_EXECUTE_ENABLED で失敗します。
BITS では仮想ディレクトリを書き込み可能にする必要がないため、仮想ディレクトリへの書き込みアクセスをオフにすることをお勧めします。
認証されたユーザー (または匿名認証の場合は IIS の匿名ユーザー) は、仮想ディレクトリがマップされている物理ディレクトリに対する変更アクセス許可を持っている必要があります。書き込み権限を付与するだけでは十分ではありません。
通知のアクセス許可の指定
仮想ディレクトリと通知 URL に指定する認証スキーム (BITSServerNotificationURL プロパティを参照) は互換性がある必要があります。 BITS では、仮想ディレクトリに指定された認証スキームを使用して通知 URL にアクセスします。 認証エラーが原因で BITS が通知 URL にアクセスできない場合、アップロード ジョブは失敗します。
通知の種類 (BITSServerNotificationType プロパティを参照) が参照している場合、アプリケーションはユーザーが参照先ファイルにアクセスできることを確認する必要があります (BITS-Request-DataFile-Name ヘッダーを参照)。 BITS は、参照先ファイルの ACL を、仮想ディレクトリがマップされる物理ディレクトリの ACL に設定します。
Note
通知されたアプリケーションは、物理的なアップロード ディレクトリとは異なるコンピューター上にある Web サーバーによって通知 URL が提供される場合でも、リモート ファイルをマップしてアクセスできる必要があります。 BITS-Request-DataFile-Name ヘッダーには、BITS Extensions コンポーネントをホストしているコンピューターを基準とするパス指定が常に含まれています。 別のコンピューターで実行されているアプリケーションは、アクセスする前にパスを UNC パスに変換する必要がある場合があります。
BITS では、認証スキームの多くの組み合わせがサポートされています。 ただし、仮想ディレクトリと一致する通知 URL には、次の認証スキームを使用する必要があります。
参照による通知をサポートするには、物理アップロード ディレクトリ (仮想ディレクトリが指すディレクトリ) が匿名以外の認証スキームを使用する場合、仮想ディレクトリは NTLM (ネゴシエート) 認証を使用するように構成する必要があります。 物理アップロード ディレクトリで匿名要求が許可されている場合 (認証なし)、仮想ディレクトリは匿名 (認証なし) を有効にする必要があります。
物理アップロード ディレクトリ上の ACL は、認証されたユーザーが通知 URL が指すディレクトリ上のファイルを読み取れるように設定する必要があります。 BITS では、物理アップロード ディレクトリの ACL を使用して一時アップロード ファイルの ACL を設定します (BITS-Request-DataFile-Name ヘッダーには、一時ファイルへのパスが含まれています)。
値による通知では、通知されたアプリケーションがアップロードコンテンツを含む一時ファイルにアクセスする必要がないため、認証スキームは匿名またはネゴシエート (NTLM) にすることができます。 唯一の要件は、仮想ディレクトリの認証済みユーザーも通知 URL へのアクセスを承認する必要があるということです。
リモート共有のアクセス許可の指定
仮想ディレクトリは、別のマシンまたはネットワーク共有上のマップされたドライブを指すことができます。 マップされたネットワーク ドライブを指している場合、ドライブのマップに使用される資格情報は、リモート共有を完全に制御できる必要があります。
仮想ディレクトリがネットワーク共有を指している場合、BITS は仮想ディレクトリの Connect As ユーザー資格情報を使用してリモート共有にアクセスします。 リモート共有にアクセスするには、LogonUser 関数のドキュメントで説明されているように、Connect As アカウントに特権が必要です。 BITS は、LOGON32_LOGON_BATCH または LOGON32_LOGON_INTERACTIVE のログオンを使用してログオンします。 Connect As ユーザー アカウントには、リモート共有に対するフル アクセス許可が必要です。書き込みアクセス許可を付与しても十分ではありません。
物理アップロード ディレクトリがネットワーク共有にマップされている場合、通知 URL を要求する呼び出し元の ID は、[接続] ユーザーまたは物理アップロード ディレクトリの認証済みユーザーのいずれかになります (チェック ボックスで [接続] ダイアログ ボックスでネットワーク リソースへのアクセスを検証するときに、常に認証済みユーザーの資格情報を使用する] をチェックしている場合は、IIS 6.0 以降でのみ使用できます)。