C# 代码运行时ASP.NET应用程序日志/进度栏

C# 代码运行时ASP.NET应用程序日志/进度栏,c#,asp.net,.net,progress-bar,message-queue,C#,Asp.net,.net,Progress Bar,Message Queue,我正在ASP表单Web应用程序中构建OCR扫描模块。你可能知道这样的手术需要一些时间。因此,我使用一个后台服务应用程序来响应运行代码的消息队列,这样用户甚至不必停留在同一个网页上 我想做的是在服务运行时通知用户发生了什么。如果让我们假设用户上传了5个文档,我希望看到像这样的东西出现在文字、标签或转发器控件中。这些项目不必保存在数据库中,我也不想这样做。 处理文件1/5 文件1已处理,代码为6732842 处理文件2/5 文件2已处理,代码为8732457 处理文件3/5 文件3已处理,代码为87

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

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

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

如果发生错误,我希望看到类似的情况

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

我有一些想法,但我不知道最好的做法是什么

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

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

如果您有任何其他选择(最好是更好的),将非常感谢


Thanx提前。

将进度项目保存在数据库中,使用不同的id为每个用户上传,使用web服务发布此数据。在浏览器中,使用JavaScipt从web服务检索进度。

当然,数据库需要定期删除,例如,每分钟删除一次。

我希望我能给你一个工作示例,但你想做的并不容易,而且由于你没有使用ASP.NET MVC,这使得异步工作变得更容易,这就更加困难了。您将需要编写一系列异步任务来为您做一些工作。这篇文章会给你一个好的开始:

这不是最漂亮的选择,但它似乎是两个世界中较小的一个。我只需在每个循环中更新一条记录,并在上更新一个异步postbacktrigger,以获取数据并刷新页面上的控件@jcalabris,谢谢你提供的信息。是的,我会深入了解MVC,让我的生活变得更轻松“我希望”。