我们有一个web应用程序,它执行一些计算并将一个文件返回给客户端。当计算时间不到5分钟时,IE和Chrome上一切正常,我们得到了文件,但如果计算时间超过5分钟,IE超时与"Internet Explorer无法显示网页“消息,其中Chrome继续运行,并最终从服务器获取文件。
我尝试过改变注册表的设置,比如KeepAliveTimeout,ReceiveTimeout,ServerInfoTimeout of WinInet,但是都没有用。单击诊断连接问题按钮会显示"Windows接收到HTTPerror消息: 403 (禁止)来自“的消息,我认为这是因为它试图在没有凭据的情况下再次访问该站点,但失败了。使用fiddler时,请求以504状态终止,并显示此消息"ReadResponse() failed:服务器未返回对此请求的响应“。有趣的是,我曾经观察到,如果Fiddler正在运行,即使Chrome超时(虽然没有通过重新运行来验证这一点)。
这是一个使用ASP.Net框架的MVC应用程序。
我已经花了相当多的时间,但还没有找到解决这个问题的方法。任何有用的建议都将不胜感激。
发布于 2012-05-24 09:11:01
来自KB181050
您通常可以将较长的进程分解为较小的片段。或者,服务器可以返回状态数据以更新用户有关流程的信息。此外,您还可以创建一个具有基于消息或异步方法的长服务器进程,以便在提交作业后立即返回给用户,然后在长进程完成后通知用户。
换句话说,创建一个<div>,并在请求被服务器接受后立即用"processing“值填充该<div>。然后,每当完成处理时,使用ajax或javascript用结果更新相同的<div>。
https://stackoverflow.com/questions/10727077
复制相似问题