3

ASPフォームWebアプリケーションでOCRスキャンモジュールを構築しています。ご存じのとおり、このような操作には時間がかかる場合があります。そのため、コードを実行するメッセージ キューに応答するバックグラウンド サービス アプリケーションを使用しているため、ユーザーは同じ Web ページにとどまる必要さえありません。

私がやりたいことは、サービスの実行中に何が起こっているかをユーザーに知らせることです。ユーザーが 5 つのドキュメントをアップロードしたとしましょう。このようなものがリテラル、ラベル、またはリピーター コントロールに表示されることを望みます。これらのアイテムをデータベースに保存する必要はありません。

ドキュメント1/5 を処理
中 ドキュメント 1 をコード 6732842 で
処理 ドキュメント 2/5 を処理中 ドキュメント 2
をコード 8732457 で
処理 ドキュメント3/5 を処理中
コード 8725347 ドキュメント 4/5 を
処理中 ドキュメント 4 を処理
できませんでした 「OCR 文字列が認識されません」 <br/> ドキュメント
5/5 を処理しています ドキュメント 5 はコード 4372537 で処理されました
完了: 受信した 5 つのドキュメントのうち 4 つを処理しました

エラーが発生した場合は、このようなものを見たいと思います

エラーが発生しました。スキャン処理が停止されました。

私にはいくつかのアイデアがありますが、何がベストプラクティスなのかわかりません。

オプション 1:
上記の項目を静的クラスに保存し、javascript を 5 秒ごとに投稿させることができます。Web メソッドを介してその値を取得します。

オプション 2:
JavaScript に 5 秒ごとに投稿させると、更新されたセッション オブジェクトを返すセッションで上記の項目を保存できます。サービスアプリケーションを使用している場合、これが利用可能かどうかはわかりません。

他のオプション(できればより良いオプション)があれば、大いに感謝します。

事前にサンクス。

4

2 に答える 2

0

進捗アイテムをデータベースに保存し、各ユーザーのアップロードに異なる ID を与え、このデータを Web サービスで公開します。ブラウザーで JavaScipt を使用して、Web サービスから進行状況を取得します。
もちろん、データベースは定期的に、たとえば毎分削除する必要があります。

于 2012-10-25T13:42:49.167 に答える
0

実際の例を挙げたいと思いますが、あなたがやりたいことは簡単ではなく、非同期作業を容易にする ASP.NET MVC を使用していないという事実により、さらに困難になります。いくつかの作業を行うには、一連の非同期タスクを作成する必要があります。次の記事から始めるとよいでしょう: http://blogs.msdn.com/b/tmarq/archive/2010/04/14/performing-asynchronous-work-or-tasks-in-asp-net-applications.aspx

于 2012-10-25T13:46:49.930 に答える