0
我正在開發WCF
-調用AJAX
時使用的服務。兩位用戶同時寫入/讀取xml文件
我正在將數據保存到/取自XML
文件。
這似乎並不爲理由一個特別好的方式,當兩個用戶同時訪問該服務將不可能寫入/讀取文件兩次。
我的問題是有什麼辦法也允許這樣的事情?
或者更好地保留與用戶的文件的本地副本,使其更改,然後將其發送到服務並更換它。 (在這種情況下,也存在同時交換兩個用戶的問題)。
可以幫忙嗎?
我正在開發WCF
-調用AJAX
時使用的服務。兩位用戶同時寫入/讀取xml文件
我正在將數據保存到/取自XML
文件。
這似乎並不爲理由一個特別好的方式,當兩個用戶同時訪問該服務將不可能寫入/讀取文件兩次。
我的問題是有什麼辦法也允許這樣的事情?
或者更好地保留與用戶的文件的本地副本,使其更改,然後將其發送到服務並更換它。 (在這種情況下,也存在同時交換兩個用戶的問題)。
可以幫忙嗎?
使用ConcurrencyModeAttribute而不是手動管理鎖。
當服務配置爲併發模式單一時,WCF將自動向服務上下文提供 同步並禁止併發呼叫。
如果有併發呼叫者,他們將放入一個隊列並按FIFO順序進行服務。
請記住,如果讀取操作的次數遠遠多於寫入次數,那麼這可能會過度。
嘗試使用通過您在XML文件中編寫代碼的關鍵部分鎖定。通過這種方式,只有一個用戶擁有對資源的獨佔訪問權限,另一個用戶將處於隊列中,並且只有當第一個用戶完成更新時纔會獲得訪問權限。 – samar
檢查此鏈接。 http://www.codeproject.com/Tips/164428/C-FileStream-Lock-How-to-wait-for-a-file-to-get-re – samar