MS Sql Server のFILESTREAMは、ファイルが SQL (格納場所、ファイル名 (一意性を保証する) など) によって管理されるため、ファイルの格納に適していますが、舞台裏では、実際にはファイル システムではなく、ファイル システムに格納されます。データベース(データベースを肥大化)。あなたのコードはそれらを BLOB として認識しますが、実際にはファイルです。
WCF は、大きなデータの汎用ストリームの送信を処理できます。それを機能させるには、操作コントラクト (Web メソッドの WCF の名前) にいくつかの制限があります。ただし、この方法には、送信の進行状況を報告する良い方法がありません(私が知っていることです)。これが思い通りにいかない場合は、ここにいる人々が提出している他の解決策や FTP にいつでも頼ることができます。
また、暗号化のための WCF のトランスポート セキュリティも確認してください。
これは、独自のバックグラウンド スレッドで管理する必要があります。バックグラウンドで動作し、進行状況を UI スレッドに報告できる (非常に重要) スレッドについては、BackgroundWorker を参照してください。スレッドが完了すると、再び UI スレッドに報告するメソッドが提供されます。
どの方法を選択しても、タイムアウトを処理する必要があるため、WCF、FTP、WebClient.Upload などの場合は、同じ問題を処理する必要がありますが、方法はわずかに異なります。少なくとも WCF では、タイムアウトのタイミングはアプリケーション構成ファイルで構成されているため、タイミングを簡単に微調整できます。