我遇到一种情况,ASP.NET需要很长时间才能生成网页回复(超过2小时).它由于代码隐藏运行一段时间(非常长,慢循环).
浏览器(IE和Firefox)停止等待回复(大约一小时后),并且通用无法显示网页错误(类似于您尝试导航到不存在的服务器时所看到的).
同时asp.net应用程序继续(我可以在调试器中看到它)并最终完成.
为什么会这样?web.config中是否有任何设置来影响这个?我希望有一个超时设置我错过了造成这种情况.
也许在IE或Firefox中设置?但我认为他们等待服务器保持连接活着.
即使我在VS的本地计算机上以调试模式(使用编译debug ="true")启动应用程序(因此它不在IIS上运行,但在ASP.NET Dev Server上运行),我也遇到了这种情况.
我知道生成页面需要很长时间才是很糟糕,但在这个阶段并不重要.加快它将需要大量的额外工作,延迟并不重要.这在内部使用.
我意识到我可以重新设计这个问题,将逻辑运行到后台进程,并在通过AJAX完成时收到通知,或将其拉到桌面应用程序或服务或其他任何东西.这些方面的某些东西最终会完成,但这不是我现在要问的问题.
听起来你正在使用IE,它在等待来自服务器的响应时超时.
您可以找到一个technet文章来调整此限制:
http://support.microsoft.com/kb/181050
原因
根据设计,Internet Explorer会对服务器强制执行超时限制以返回数据.版本4.0和4.01的超时限制为5分钟,版本5.x,6和7的超时限制为60分钟.因此,当服务器具有数据时,Internet Explorer不会无休止地等待服务器返回数据.一个问题.回到顶端
解析度
通常,如果页面在几分钟内没有返回,则许多用户会发现问题已发生并停止该过程.因此,设计服务器进程以在5分钟内返回数据,以便用户不必等待很长一段时间.