【问题标题】:ASP.NET Application log while code is running / progress bar代码运行时的 ASP.NET 应用程序日志/进度条
【发布时间】:2012-10-15 17:02:16
【问题描述】:

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

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

正在处理 1 个文档,共 5 个
使用代码 6732842 处理的文档 1
正在处理 2 个文档,共 5 个
使用代码 8732457 处理的文档 2
正在处理 3 个文档,共 5 个
使用代码 8725347 处理的文档 3
处理文档 4 of 5
无法处理文档 4 “未识别 OCR 字符串”
正在处理 5 个文档,共 5 个
使用代码 4372537 处理的文档 5
已完成:已处理收到的 5 份文件中的 4 份

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

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

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

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

选项 2:
当我让 JavaScript 每 5 秒发布一次时,我可以将上述项目保存在返回更新的会话对象的会话中。不知道在使用服务应用时是否可以使用。

如果您有任何其他选择(最好是更好的选择),将不胜感激。

提前感谢。

【问题讨论】:

    标签: c# asp.net .net progress-bar message-queue


    【解决方案1】:

    将进度项保存在数据库中,为每个用户的上传提供不同的 id,并使用 Web 服务发布此数据。在浏览器中,使用 JavaScipt 从 Web 服务中检索进度。
    当然,数据库需要定期删除,例如每分钟。

    【讨论】:

    • 这不是最漂亮的选择,但它似乎是两个最坏的选择中较小的一个。我只是在每个循环中更新一条记录,并在 上使用异步回发触发器来获取数据并刷新页面上的控件。 @jcalabris,谢谢你的信息。是的,我将深入研究 MVC,让我的生活更轻松“我希望”。
    【解决方案2】:

    我希望我能给你一个可行的例子,但是你想要做的并不容易,而且由于你没有使用 ASP.NET MVC 这使得异步工作更容易,因此变得更加困难。您将需要编写一系列异步任务来为您完成一些工作。这篇文章会给你一个好的开始:http://blogs.msdn.com/b/tmarq/archive/2010/04/14/performing-asynchronous-work-or-tasks-in-asp-net-applications.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多