2009-12-17 24 views
0

我在使用.NET Compact Framework框架運行的Windows Mobile 5.0客戶端應用程序與asp.net 2.0 web服務同步數據時遇到了一些問題。在響應期間使Web服務調用更具事務性並處理網絡故障所需的建議?

這裏是被執行的步驟列表,然後在那裏我覺得問題發生:

  1. 客戶端收集來自它的SQL精簡版數據庫的本地數據不具有一個服務器端的主鍵然而。
  2. 客戶端調用Web服務傳遞'新'數據以及已經存儲在設備上已經存在主鍵的其他數據的列表(因此Web服務知道已經存在的東西!)。
  3. 服務器將新數據插入我們的中央數據庫,這反過來又將記錄授予唯一的服務器端主鍵。
  4. Web服務調用的響應現在加載了(1)自上次同步以來已在服務器上集中添加的新數據,(2)自上次同步以來發生更改的數據,以便我們可以更新設備上已有的數據,以及(3)新分配的剛剛上傳的數據的服務器端主鍵。
  5. 客戶端存儲來自服務器(1)的新數據,更新已更改的數據(2)並記錄剛剛上載的數據的服務器端主鍵(3)。

我希望以上是有道理的!

我發現我在設備上得到了一些重複的數據,這是由於網絡連接在響應下載到客戶端期間失敗。原因是服務器插入新數據,但告訴客戶端服務器端主鍵的數據沒有回到客戶端。這導致客戶嘗試在下次同步時上傳新數據,儘管它已經插入到我們的中央數據庫中。

我只是不能想到一種方式,我的中央服務器可以確定客戶端是否收到了正確的響應,任何人都可以提出任何更好的方法來使整個事情更事務?

回答

0

服務器插入數據,然後將密鑰返回給客戶端。客戶端然後更新其密鑰集。爲什麼不添加來自客戶端的最終方法調用來告訴服務器它已成功更新其密鑰,這將告訴服務器提交事務?

相關問題