0

我们有一个 Web 应用程序,它进行一些计算并将文件返回给客户端。当计算时间少于 5 分钟时,在 IE 和 Chrome 上一切正常,我们得到文件,但如果计算时间超过 5 分钟,IE 超时并显示“Internet Explorer 无法显示网页”消息,Chrome 继续运行并最终得到来自服务器的文件。

我尝试更改注册表设置,例如 WinInet 的 KeepAliveTimeout、ReceiveTimeout、ServerInfoTimeout,但没有帮助。单击“诊断连接问题”按钮显示“Windows 收到一条 HTTPerror 消息:403(禁止)来自”消息,我认为这是因为它尝试在没有凭据的情况下再次访问该站点并失败。使用 fiddler 时,请求以 504 状态终止并显示此消息“ReadResponse() failed: The server did not return a response for this request.” 有趣的是,我曾经观察到,如果 Fiddler 正在运行,即使 Chrome 也会超时(虽然还没有通过重新运行来验证这一点。)

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

我花了相当多的时间,但还没有找到解决方案。任何有用的指针都将不胜感激。

4

1 回答 1

1

KB181050

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

换句话说,创建一个并在服务器接受请求后立即用“处理”值<div>填充它。然后,每当您完成处理时<div>,使用 ajax 或 javascript 更新结果。<div>

于 2012-05-24T01:11:00.997 回答