2012-06-07 140 views
0

我一直在调查一个问题,现在任何帮助都会很大。asp.net批处理

简而言之,我必须在后台运行一个asp.net进程。所以当我回发时,它会处理几分钟。我尝试了在回发批处理中返回另一个进程并返回的标准方法。但是,我的批处理过程使用ASP.NET控件(特别是ReportViewer)进行处理。这意味着它无法在另一个线程中运行。我们如何解决这个问题。这是否意味着无法在批处理模式下生成报告?

作为一种折中,我很高兴如果回发等待作业完成。但我想在客户端显示状态。为此,而回发是我试图让ajax调用服务器来获得status.But问题在于,对于一​​个会话,您只能使用单个线程(UI)。所以当我做一个ajax调用时,它会等待回发完成并释放线程。

我在我束手无策,因为这是一种简单而明显的要求

感谢

+0

嗨,我基于过滤器批量渲染多个报告 - 所以它需要超过10米 – josephj1989

+0

是什么使报告生成变慢?我的意思是细节。 100%是一个黑匣子,还是可以将这个过程扼杀成平行任务? –

+0

嗨,假设我们有一个需要美国状态和日期范围以及其他参数的报告。现在使用可以输入一个状态列表和一组日期范围。我们必须为每个参数组合生成报告,最多可以有60个报告。绝对需要几分钟时间。而且这些不能并行运行,因为控件正在渲染报告,因此报告生成必须在主线程中完成 – josephj1989

回答

0

enter image description here我的第一个想法。

你可以剥离一个背地面线程并将HTTPContext传递给它吗?那么你可以发送响应给客户端,而主线程正忙?

但是这个artcle Asynchronous Pages in ASP.NET 2.0可能有一个更好的模式给你。