在循环中生成WCF请求会导致超时异常

时间:2012-07-12 14:37:13

标签: wcf entity-framework rest timeout

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

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

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

大多数情况下,脱机数据库上有大量记录需要放在在线数据库上。

所以循环执行

  1. 从脱机数据库中提取数据库。
  2. 将它们推送到WCF。
  3. WCF调用DAL层,这些记录已插入在线数据库。
  4. 请求完成后,标记那些在脱机数据库中上传的记录批。
  5. 它运行很好几次,然后它给出了错误

      

    {“连接超时已过期。在登录后阶段过去了超时时间。连接可能在等待服务器完成登录过程并响应时超时;或者在尝试创建多个活动时可能已超时尝试连接到此服务器所花费的时间是 - [预登录]初始化= 3977;握手= 7725; [登录]初始化= 0;身份验证= 0; [登录后]完成= 3019;“} < / p>

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

1 个答案:

答案 0 :(得分:0)

在第3点你提到了

  

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

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

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

我更喜欢“使用”声明。像这样的东西

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

试试这个