次の方法で共有


複数のアップロードの防止

ファイルをアップロードすると、BITS は BITS クライアントと BITS サーバーの両方へのアップロード セッションを識別するセッション ID を作成します。 BITS クライアントとサーバー間の接続が BITS ファイルのアップロード中に切断された場合、クライアントはセッション ID を使用してアップロードを再開しようとします。

BITS クライアントが以前と同じサーバーに接続すると、サーバーはセッション ID を認識し、アップロードは中断された時点から再開されます。 ただし、クライアントが別のサーバーに接続する場合は、新しいサーバーにセッション コンテキストまたは以前にアップロードされたデータがないため、クライアントは最初からアップロードを開始する必要があります。 BITS サーバーが Web ファームでホストされていて、BITS IIS 拡張プロパティ (BITSHostId ) が設定されていない場合、BITS は別のサーバーに接続する可能性があります。 BITSHostId プロパティは、BITS クライアントが共有サーバー アドレスではなく、前のサーバーの一意のアドレスに接続するように強制することで、再起動を防ぎます。

BITS サーバーは、アップロード ファイルをサーバー アプリケーションに 1 回だけ送信しようとしますが、ファイルが複数回送信される可能性があります。 これは、たとえば、BITS サーバーがサーバー アプリケーションにファイルを送信し、サーバー アプリケーションからの応答を待機している間に終了した場合などに発生する可能性があります。 BITS クライアントは HTTP 層からエラー コードを受け取り、遅延後にアップロードを再試行します。 サーバーが BITSHostIdFallbackTimeout タイムアウトより長くオフラインのままである場合、クライアントは最終的に共有サーバー アドレスに要求を再度送信します。別の BITS サーバーがファイルを受信し、サーバー アプリケーションにもう一度配信します。

同様のケースは、1 つのフロントエンド サーバーでも発生する可能性があります。 たとえば、クライアントがファイル全体をサーバーにアップロードした場合、最終的なブロックにより、サーバーはファイルをサーバー アプリケーションに転送します。 BITS サーバーまたはサーバー アプリケーションは、ファイルが処理された後、受信確認がクライアントに送信される前に終了する場合、クライアントはエラー コードを受信し、後で再試行します。 クライアントが再試行すると、BITS サーバーは最終的なブロックがアップロードされたことを確認し、ファイルをサーバー アプリケーションに再び転送します。 アップロード ファイルを複数回受信することがサーバー アプリケーションの問題である場合は、データにトランザクション識別子を含めるかどうかを検討する必要があります。