在我的代码中,我尝试使用 TransactionScope 和实体框架来使用事务。在此事务中,我们打开一个到单独服务器和数据库的常规 SQL 连接。当 conn.Open() 被调用时,我们得到一个错误:
“分布式事务管理器 (MSDTC) 的网络访问已被禁用。请使用组件服务管理工具在 MSDTC 的安全配置中启用 DTC 以进行网络访问。”
但是,MSDTC 已启用并在服务器上运行。
在我的代码中,我尝试使用 TransactionScope 和实体框架来使用事务。在此事务中,我们打开一个到单独服务器和数据库的常规 SQL 连接。当 conn.Open() 被调用时,我们得到一个错误:
“分布式事务管理器 (MSDTC) 的网络访问已被禁用。请使用组件服务管理工具在 MSDTC 的安全配置中启用 DTC 以进行网络访问。”
但是,MSDTC 已启用并在服务器上运行。
1)只是为了确定,但您是否真的确认 DTC 正在运行。右键单击组件服务屏幕中的“我的电脑”。顶部菜单项应显示“停止 DTC”。
2)您是否检查过您的 MSDTC 配置在两端(启动与数据库的连接的应用程序服务器和您的数据库服务器)是否相同?请特别注意 MSTDC 选项卡下的安全配置
祝你好运
您需要在 Web 服务器和 SQL Server 上启用 MS DTC,并在两台计算机上启用远程事务。我的博客上有Windows 2003和Windows 2008的演练。
还要检查防火墙。我曾经在办公室浪费了一整天,因为发现前一天晚上运行的 Windows 更新操作恢复了 Windows 防火墙的默认值。