asp中的漫长过程

时间:2012-08-01 05:31:50

标签: c# asp.net

我的情况是这样的:

创建了一个将运行一个漫长过程的页面。 ......这个过程包括: - 阅读文件。 Csv,为文件的每一行创建一个发票...在此过程的最后显示一条成功的消息。

为此,决定使用updatepanel,以便进程是异步的,并且可以在等待完成进程时显示UpdateProgress ...为此在scriptmanagment的属性中添加了AsyncPostBackTimeout = 7200(2小时)和在qa和生产服务器中,应用程序的web.config也增加了超时。

在localhost中作为qa服务器进行了测试并且运行良好,在生产服务器上测试功能时会出现问题。

这使得: 加载文件并启动进程...在此期间运行UpdateProgress但是只花费1到2分钟并结束执行而不显示最后一条消息,就好像截断了进程一样。查看创建的发票时,只创建文件的前10条记录(来自50,100或+行的文件)

所以我想帮助我,因为我不知道什么是错的。

1 个答案:

答案 0 :(得分:2)

asp.net不适合长时间运行的进程。

IIS的默认页面超时为110秒(.net 1.0为90)。您可以增加此值,但不建议这样做。

如果必须这样做,请按以下步骤设置:

<system.web>
   ...
   <httpRuntime executionTimeout="180"/>
   ...
<\system.web>

参考httpRuntime

将此工作传递给Windows服务,WCF或独立的exe。 使用您的页面从该应用程序获取进程的状态。

以下示例说明如何使用workflows for long running processes

您将大部分处理移出asp.net,并释放其线程以处理页面请求。