Tôi đã gặp lỗi này và đã tìm thấy một số giải pháp:
Nhìn vào chuỗi kết nối của bạn, nó có vẻ hợp lệ. Tôi đã tìm thấy bài đăng trên blog này, vấn đề ở đây là họ đang sử dụng Bảo mật tích hợp. Nếu bạn đang chạy trên IIS, người dùng IIS của bạn cần quyền truy cập vào cơ sở dữ liệu.
Nếu bạn đang sử dụng Khung thực thể có Giao dịch, Khung thực thể tự động mở và đóng kết nối với mỗi lệnh gọi cơ sở dữ liệu. Vì vậy, khi sử dụng các giao dịch, bạn đang cố gắng dàn trải một giao dịch qua nhiều kết nối. Điều này sẽ nâng lên thành MSDTC.
(Xem tài liệu tham khảo này để biết thêm thông tin.)
Việc thay đổi mã của tôi thành mã sau đã khắc phục được sự cố:
using (DatabaseEntities context = new DatabaseEntities())
{
context.Connection.Open();
// the rest
}