3

我正在我的 ASP 表单 web 应用程序中构建一个 OCR 扫描模块。您可能知道这样的操作可能需要一些时间。因此,我正在使用一个后台服务应用程序来响应运行代码的消息队列,因此用户甚至不必停留在同一个网页上。

我想做的是通知用户在服务运行时发生了什么。如果假设用户上传了 5 个文档,我希望在文字、标签或中继器控件中看到类似的内容。这些项目不必保存在数据库中,我也不想这样做。

处理文档 1 of 5
文档 1 处理代码 6732842
处理文档 2 of 5
文档 2 处理代码 8732457
处理文档 3 of 5
文档 3 处理代码 8725347
处理文档 4 of 5
文档 4 无法处理“无法识别 OCR 字符串” <br/> 处理文档 5 of 5
文档 5 已处理,代码为 4372537
已完成:已处理 5 个文档中的 4 个已收到

如果发生错误,我希望看到类似的内容

发生错误。扫描过程已停止。

我有一些想法,但我不知道最佳实践是什么。

选项 1:
我可以将上述项目保存在静态类中,并让 javascript 每 5 秒发布一次。通过网络方法获得该值。

选项 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 回答