Trong ứng dụng của chúng tôi, chúng tôi đang sử dụng TransactionScope. Chúng tôi đang hướng tới việc không sử dụng dịch vụ MSDTC vì nó chậm hơn rất nhiều so với các giao dịch nhẹ.
using (var transactionScope = new TransactionScope())
{
...
transactionScope.Complete();
}
Trong khi kết nối với cơ sở dữ liệu kiểm tra, chúng tôi không cần MSDTC nhưng mã chính xác, được thực thi trên cùng một máy, leo thang để sử dụng MSDTC khi được kết nối với cơ sở dữ liệu sản xuất hoặc phát triển.
Cơ sở dữ liệu phát triển không được phân cụm và không phải là một thể hiện được đặt tên.
Tất cả đều là SQL Server 2008 (10.50.2500) và các chuỗi kết nối hoàn toàn giống nhau ngoại trừ tên máy chủ.
Dường như có một số khác biệt trong việc thiết lập cơ sở dữ liệu. Bất kỳ ý tưởng về những gì có thể được?
BIÊN TẬP
Giao dịch đã ở đó để bảo vệ các phần chèn trong hai bảng khác nhau. Tôi nhận thấy rằng cũng có hai cuộc gọi dẫn đến hai lựa chọn trong đó. Không cần những thứ này trong giao dịch nên tôi đã chuyển chúng ra ngoài nó. Nhu cầu về MSDTC sau đó biến mất trong cả ba cơ sở dữ liệu. Vấn đề được giải quyết nhưng không thực sự biết những gì gây ra nó.