iT邦幫忙

0

請問 .NET Core 為何""實現不包括對分散式事務的支援""就不能使用 TransactionScope ?

  • 分享至 

  • xImage

請問 .NET Core 為何""實現不包括對分散式事務的支援""就不能使用 TransactionScope ?

公司最近想要升級一個 .NET Framework 小舊專案到 .NET Core

結果遇到不支援 TransactionScope 問題 ...

查詢原因是 :

.NET Core時期:

自版本2.1起,.NET Core中的System.Transactions實現不包括對分散式事務的支援,因此不能使用TransactionScope或CommittableTransaction來跨多個資源管理器協調事務。

不太明白為何跨平台這功能就不能用...

已查詢、閱讀 :

TransactionScope事務處理方法介紹及.NET Core中的注意事項 - IT閱讀

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2023-01-17 05:34:30

不太明白為何跨平台這功能就不能用...

因為 TransactionScope 是基於分散式事務 (Distributed Transactions) 機制實現的,要依賴於底層平台分散式事務協調器 (Distributed Transaction Coordinator, DTC) 的服務,DTC 是一個系統級服務,負責在多個資源管理器之間協調事務。

在 Windows 上, DTC 是由 Microsoft 提供的,而在其他平台上,如 Linux 或 macOS 上,可能沒有等效的 DTC 服務。因此在這些平台上使用 TransactionScope 可能會產生錯誤或不可預期的行為。

因此在 .NET Core 中,由於需要跨平台,主要是不依賴windows中的mstsc功能。所以不能保證所有平台都有分散式事務的支援,因此不支援TransactionScope。

我要發表回答

立即登入回答