2012-05-23 77 views
0

我们有一个Web应用程序,它执行一些计算并将文件返回给客户端。当计算时间少于5分钟时,IE和Chrome上的所有工作都可以正常工作,并且我们获取该文件,但是如果计算时间超过5分钟,Chrome浏览器将继续运行并最终获取“Internet Explorer无法显示网页”的信息来自服务器的文件。5分钟后IE超时

我试着改变WinInet的KeepAliveTimeout,ReceiveTimeout,ServerInfoTimeout等注册表设置,但没有帮助。点击诊断连接问题按钮显示“Windows收到HTTPerror消息:403(禁止)来自”消息,我认为这是因为它试图再次访问没有凭据的网站并失败。当使用fiddler时,请求终止于504状态,并显示此消息“ReadResponse()失败:服务器没有为此请求返回响应。”有趣的是,我曾经观察到,如果Fiddler正在运行,甚至Chrome也会超时(虽然没有通过重新运行验证)。

这是一个使用MVC框架的ASP.Net Web应用程序。

我花了相当多的时间,但一直没能找到解决方案。任何有用的指针真的很感激。

回答

1

KB181050

你可以一个漫长的过程,通常分解成更小的碎片。或者,服务器可以返回状态数据以更新用户关于该过程的信息。另外,您可以创建一个长的服务器进程,该进程具有基于消息或异步的方法,以便在作业提交后立即返回给用户,然后在完成长进程后通知用户。

换言之,创建一个<div>并立即填补<div>用“处理”值的请求已被所述服务器接受后。然后,使用ajax或javascript更新同样的<div>,并在处理完成后得到结果。