2012-08-01 42 views
1

我的情况是这样的:在asp中的漫长过程

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

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

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

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

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

回答

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移出,并释放其线程以处理页面请求。

+0

感谢您的评论...我会检查 – npperez 2012-08-01 13:43:10

相关问题