0

wcfを使用してdbと通信するwpfアプリを開発しています。1つの要件は、ファイルをアップロードし、後で取得できるようにインデックスを付けることです。車輪の再発明をせずにこれを行うための最良の方法は何ですか。この恐ろしいタイムアウトにwcfを使用するのは怖いです。ソリューションはバックグラウンドスレッドにあり、進行状況を追跡し、失敗時に再試行または続行できるようにし、暗号化する必要があります。silverlight/asp.netにあったようなファイルアップロードコントロールが見つかりません

または、dmsに統合する必要がありますか?

4

3 に答える 3

0

そのようなものにはAsp.NetWebApiを使用できます。異なるツールを使用することに悪いことは何もありません。どのアプリでもホストでき、簡単なhttpアップロードになります。

サーバーサイドのコード例:ASP.NETWebAPIとAzureBlobStorageを使用した大きなファイルのアップロード

于 2012-10-10T21:32:35.677 に答える
0

試してみてくださいSystem.Net.WebClient.Upload

于 2012-10-10T21:55:19.020 に答える
0

MS Sql Server のFILESTREAMは、ファイルが SQL (格納場所、ファイル名 (一意性を保証する) など) によって管理されるため、ファイルの格納に適していますが、舞台裏では、実際にはファイル システムではなく、ファイル システムに格納されます。データベース(データベースを肥大化)。あなたのコードはそれらを BLOB として認識しますが、実際にはファイルです。

WCF は、大きなデータの汎用ストリームの送信を処理できます。それを機能させるには、操作コントラクト (Web メソッドの WCF の名前) にいくつかの制限があります。ただし、この方法には、送信の進行状況を報告する良い方法がありません(私が知っていることです)。これが思い通りにいかない場合は、ここにいる人々が提出している他の解決策や FTP にいつでも頼ることができます。

また、暗号化のための WCF のトランスポート セキュリティも確認してください。

これは、独自のバックグラウンド スレッドで管理する必要があります。バックグラウンドで動作し、進行状況を UI スレッドに報告できる (非常に重要) スレッドについては、BackgroundWorker を参照してください。スレッドが完了すると、再び UI スレッドに報告するメソッドが提供されます。

どの方法を選択しても、タイムアウトを処理する必要があるため、WCF、FTP、WebClient.Upload などの場合は、同じ問題を処理する必要がありますが、方法はわずかに異なります。少なくとも WCF では、タイムアウトのタイミングはアプリケーション構成ファイルで構成されているため、タイミングを簡単に微調整できます。

于 2012-10-10T22:19:04.807 に答える