2012-07-12 50 views
2

我有两个DB脱机并联机。使WCF请求在循环中导致超时异常

在哪里离线DB存在于系统中,我创建了一个调度的应用程序,拉从离线数据库的记录,他们推到网上数据库使用WCF和实体框架。

应用程序一次抽取一批10条记录,然后按下它们。

大多数情况下,离线数据库中有大量记录需要放在在线数据库中。

所以循环执行该

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

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

{“连接超时。在后登录阶段超时时间已过,该连接可能超时的同时等待服务器完成登录过程并作出响应;或者尝试创建多个活动连接时可能超时。试图连接到此服务器的时间是 - [Pre-Login] initialization = 3977; handshake = 7725; [Login ] initialization = 0; authentication = 0; [Post-Login] complete = 3019;“}

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

+1

如果保持连接打开的整段时间,会比是正确的。也许关闭通话之间的连接? – devlife 2012-07-12 15:02:22

+1

@devlife我相信EF我们不打开并手动关闭连接。 – 2012-07-12 15:12:00

+0

这些数据库是否位于同一网络上? – 2012-07-12 15:12:33

回答

0

在3点你提到

WCF调用DAL层和这些记录已经在网上DB被插入。

如何要插入数据库中的记录?

您必须处理您的上下文,以便它可用于您即将进行的下一个请求。

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

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

试试这个

相关问题