2

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

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

应用程序一次提取 10 条记录的批次,然后推送它们。

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

所以一个循环执行

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

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

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

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

4

1 回答 1

0

在您提到的第 3 点

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

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

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

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

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

试试这个

于 2012-07-14T13:05:20.273 回答