【问题标题】:Make WCF request in a loop results in a Timeout Exception在循环中发出 WCF 请求会导致超时异常
【发布时间】:2012-07-12 14:37:13
【问题描述】:

我有两个离线和在线数据库。

在存在离线数据库的系统上,我创建了一个计划的应用程序,它从离线数据库中提取记录并使用 WCF 和实体框架将它们推送到在线数据库。

应用程序一次拉出这批 10 条记录,然后推送它们。

大多数时候离线数据库中有大量记录需要放到在线数据库上。

所以一个循环执行

  1. 从离线数据库中拉取数据库。
  2. 将它们推送到 WCF。
  3. WCF 调用 DAL 层,这些记录已插入在线数据库中。
  4. 请求完成后,标记他们在离线数据库中上传的那批记录。

它运行了几次,然后它给出了错误

{"连接超时。在登录后阶段超时。连接可能在等待服务器完成登录过程并响应时超时;或者它可能在尝试创建多个活动时超时连接。尝试连接到此服务器的持续时间为 - [登录前] 初始化 = 3977;握手 = 7725;[登录] 初始化 = 0;身份验证 = 0;[登录后]完成 = 3019;“}

为什么会发生这种情况,我该如何解决?

【问题讨论】:

标签: wcf entity-framework rest timeout


【解决方案1】:

在你提到的第 3 点中

WCF 调用 DAL 层,这些记录已插入在线数据库中。

您是如何在数据库中插入记录的?

您必须处置您的上下文,以便它可用于您即将提出的下一个请求。

我更喜欢“使用”语句。像这样的

      using (var context = new YourContext())
       {
           context.methodThatIsUsedToInsertRecords();
       }

试试这个

【讨论】:

    猜你喜欢
    • 2015-12-06
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 2012-09-05
    • 2020-02-18
    • 1970-01-01
    相关资源
    最近更新 更多