從我讀什麼,爲了在.NET中使用的TransactionScope,您需要在Windows Distributed Transaction Coordinator服務在運行。我有一個服務關閉,和我的應用程序似乎運行相同,並回滾事務沒有問題。TransactionScope需要DTC服務嗎?
我錯過了什麼嗎? 它是如何工作的?我運行Windows 7和運行web應用程序關閉的VisualStudio 2010
從我讀什麼,爲了在.NET中使用的TransactionScope,您需要在Windows Distributed Transaction Coordinator服務在運行。我有一個服務關閉,和我的應用程序似乎運行相同,並回滾事務沒有問題。TransactionScope需要DTC服務嗎?
我錯過了什麼嗎? 它是如何工作的?我運行Windows 7和運行web應用程序關閉的VisualStudio 2010
更現代的版本在內核迷你DTC版本。它不是分佈式的,但使用相同的API - 但它只能處理每個事務作用域的一個資源。
的TransactionScope使用,在一開始,然後是「促進」交易的真正的DTC的時刻添加第二個資源(資源在你的情況是一個數據庫連接)。所以,只要你的使用情況是ismple,你避免DTC的分佈式部分(高)的開銷,並且可以在不運行的服務工作。
關於內核事務Managger更多信息可以在http://en.wikipedia.org/wiki/Kernel_Transaction_Manager
找到MS加也因爲NTFS了交易,它需要確保一個DTC是aavailable。
MSDTC進入劇中唯一的,如果你有不同的連接
多個事務這樣,答案是:
這取決於!
真的嗎?如果你清楚註明,比一個TranScope你使用一個以上的連接,然後我更新的答案,否則 - 它看起來像你使用每筆交易範圍1個連接 - 這種情況下不涉及MSDTC – 2012-01-31 08:20:10
DTC是必需的,據我所知,當你的交易需要跨越一定的邊界。例如,我相信您需要它在本地計算機上的兩個數據庫之間進行事務處理,或者將事務升級到遠程服務器。我沒有硬性的證據/鏈接,所以我只是留下這個作爲你的意見調查,而不是作爲答案。希望能幫助到你。 – Smudge202 2012-01-31 07:15:31