【问题标题】:ASP.NET Timeout Setting (IE and Chrome)ASP.NET 超时设置(IE 和 Chrome)
【发布时间】: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 没有发生这种情况?

标签: c# java .net asp.net wcf


【解决方案1】:

将此添加到您的 Web.config 以增加会话保持活动的时间:

<configuration>
<system.web>
    <sessionState mode="SQLServer" sqlConnectionString="Data Source=vls.dev.videolibraryserver.com;User Id=sa;Password=test;" timeout="300" />
</system.web>
</configuration>

注意:更改超时值

然后编写一个轮询 WCF 服务的 ajax 控件,完成后重新加载页面。

【讨论】:

    【解决方案2】:

    如果您可以控制 WCF 服务,那么我建议您重构代码。

    让如此长时间运行的进程同步发生确实不是一个好习惯。

    如果您知道这需要很长时间并且不担心您可以使用 OneWay 服务的结果,那么您的客户就不必等待回复。

    如果您编写了一个双工服务,那么您的客户端可能会等待很长时间,因为它不会收到回调。

    另一种解决方案是使用 OneWay 服务,然后按照 Pete2k 的建议创建另一个轮询以查看操作是否完成的服务

    【讨论】:

      猜你喜欢
      • 2014-04-05
      • 2013-04-22
      • 2016-10-26
      • 2012-06-27
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多