【发布时间】:2011-06-29 13:14:53
【问题描述】:
我有一个 asp.net 网络应用程序。它通过 WCF 与业务层通信。有一个功能需要一个多小时才能完成。这是一个通常的同步调用。 出于测试目的,在业务层(服务)使用 Thread.Sleep 来重现此功能。
System.Threading.Thread.Sleep(4200000);
我正在使用 Visual Studio 2005 开发环境(不是 IIS)对其进行测试。当我使用 chrome 作为网络浏览器进行测试时,它甚至可以在一个小时后等待。但是当我使用 IE6 进行测试时,它会在一小时后退出应用程序并导航到我们的登录页面。
对于我应该进行哪些设置以在 1 小时后不退出 IE 有什么想法?
注意:此功能每月仅由管理员使用一次。所以花两个小时对我们来说是可以的。 [为管理员创建类似于 Windows 应用程序的东西可能是理想的。但我们目前无法想到这一点。]。此外,我们不能创建任何其他 Ajax 调用或双工服务——客户端不允许这些事情。所以唯一的解决方案是更改 IE 的设置(在 IE 或 ASP.NET 中)
注意:WCF 是自托管的,用于测试。它是 WCF 中的 NetTCPBinding。
谢谢
李乔
【问题讨论】:
-
我建议避免这样的设计。运行异步执行,将结果保存到数据库,然后按需显示结果更加健壮。
-
假设它不是一个必须经常调用的函数(或者至少我希望如此)仅仅使用 IE6 以外的浏览器不是这个特定函数的选项?
-
我同意 Alex 的观点。运行如此长时间的 HTTP 请求毫无意义。在大多数环境中,如果不是浏览器,那么网络上的路由器/交换机很可能会使 HTTP 连接超时。
-
@thekip: 有一个与其他浏览器不兼容的第三方控件。因此,我们需要让它与 IE 一起工作。 @VinayC 如何确定是哪一个导致了 HTTP 连接超时?有什么工具/方法可以解决这个问题吗? tcpdump 可以帮忙吗?还有为什么 chrome 没有发生这种情况?