Asp.net

TransactionScope 是否需要開啟 DTC 服務?

  • October 11, 2016

根據我的閱讀,為了在 .NET 中使用 TransactionScope,您需要執行 Windows 中的分佈式事務協調器服務。我關閉了該服務,並且我的應用程序似乎執行相同並且回滾事務沒有問題。

我錯過了什麼嗎?**它是如何工作的?**我正在執行 Windows 7 並在 VisualStudio 2010 上執行 webapp。

更現代的 Windows 版本在核心中有一個迷你 DTC 版本。它不是分佈式的,而是使用相同的 API - 但每個事務範圍只能處理一個資源。

TransactionScope 一開始就使用它,然後在添加第二個資源時將事務“提升”到真正的 DTC(在您的情況下,資源是數據庫連接)。因此,只要您的案例簡單,您就可以避免 DTC 的 DISTRIBUTED 部分的(高)成本,並且可以在不執行服務的情況下工作。

有關核心事務管理器的更多資訊,請訪問http://en.wikipedia.org/wiki/Kernel_Transaction_Manager

MS 添加它也是因為 NTFS 具有事務性,並且需要確保 DTC 可用。

http://www.codeguru.com/cpp/article.php/c18309/

引用自:https://stackoverflow.com/questions/9075095