請問 .NET Core 為何""實現不包括對分散式事務的支援""就不能使用 TransactionScope ?
公司最近想要升級一個 .NET Framework 小舊專案到 .NET Core
結果遇到不支援 TransactionScope 問題 ...
查詢原因是 :
.NET Core時期:
自版本2.1起,.NET Core中的System.Transactions實現不包括對分散式事務的支援,因此不能使用TransactionScope或CommittableTransaction來跨多個資源管理器協調事務。
不太明白為何跨平台這功能就不能用...
已查詢、閱讀 :
不太明白為何跨平台這功能就不能用...
因為 TransactionScope 是基於分散式事務 (Distributed Transactions) 機制實現的,要依賴於底層平台分散式事務協調器 (Distributed Transaction Coordinator, DTC) 的服務,DTC 是一個系統級服務,負責在多個資源管理器之間協調事務。
在 Windows 上, DTC 是由 Microsoft 提供的,而在其他平台上,如 Linux 或 macOS 上,可能沒有等效的 DTC 服務。因此在這些平台上使用 TransactionScope 可能會產生錯誤或不可預期的行為。
因此在 .NET Core 中,由於需要跨平台,主要是不依賴windows中的mstsc功能。所以不能保證所有平台都有分散式事務的支援,因此不支援TransactionScope。