2012-07-12 97 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(); 
     } 

試試這個

相關問題