我的情况是这样的:
创建了一个将运行一个漫长过程的页面。 ......这个过程包括: - 阅读文件。 Csv,为文件的每一行创建一个发票...在此过程的最后显示一条成功的消息。
为此,决定使用updatepanel,以便进程是异步的,并且可以在等待完成进程时显示UpdateProgress ...为此在scriptmanagment的属性中添加了AsyncPostBackTimeout = 7200(2小时)和在qa和生产服务器中,应用程序的web.config也增加了超时。
在localhost中作为qa服务器进行了测试并且运行良好,在生产服务器上测试功能时会出现问题。
这使得: 加载文件并启动进程...在此期间运行UpdateProgress但是只花费1到2分钟并结束执行而不显示最后一条消息,就好像截断了进程一样。查看创建的发票时,只创建文件的前10条记录(来自50,100或+行的文件)
所以我想帮助我,因为我不知道什么是错的。
答案 0 :(得分:2)
asp.net不适合长时间运行的进程。
IIS的默认页面超时为110秒(.net 1.0为90)。您可以增加此值,但不建议这样做。
如果必须这样做,请按以下步骤设置:
<system.web>
...
<httpRuntime executionTimeout="180"/>
...
<\system.web>
将此工作传递给Windows服务,WCF或独立的exe。 使用您的页面从该应用程序获取进程的状态。
以下示例说明如何使用workflows for long running processes。
您将大部分处理移出asp.net,并释放其线程以处理页面请求。