WCF MSDTC 基础提供程序在OPEN上失败解决方法
来源:互联网 发布:淘宝网三星平板电脑 编辑:程序博客网 时间:2024/05/21 10:06
我在WPF开发过程中,通过WCF访问数据库时出现这个问题:基础提供程序在OPEN上失败,网上说是连错数据库,但我的解决不了,我的解决方法是在控制面板--管理工具--组件服务--我的电脑--Distributed Transaction Coordinator--本地DTC,右键属性,安全里面把网络DTC访问勾上,事务管理器通信中的允许入站,允许出站勾上。同事说是系统没有让程序处理事务的问题。
2012-12-16遇到了新的问题,无故出现了这错误,而且是在这种情况下出错:
using(var ts=new System.Transactions.TransactionScope())
{
————多表操作代码
ts.Complete();
}
直接报错!错误是 基础提供程序在open上失败
能执行完一个表操作,第二个表操作就错了。查了很多资料试验都没有起到作用。
后来研究了一下系统日志,在应用程序日志里发现有关MSDTC的一些错误显示。
1、正在运行 MS DTC 服务的帐户无效。如果使用 Microsoft Management Console (MMC) 中的“服务”管理单元更改了服务帐户信息,就会发生这种情况。MS DTC 服务将继续启动。请确认使用“组件服务管理器”更新了 MS DTC 服务帐户信息
2、尝试与系统 GWDEV01 建立安全连接时,MSDTC 遇到错误(HR=0x80000171)。
在网上查到一些资料:
“正在运行 MS DTC 服务的帐户无效”错误
MSDTC( Distributed Transaction Coordinator )服务必须在 NT AUTHORITY\NetworkService 帐户下运行;即使是 NT AUTHORITY\Network Service(注意,Network和Service中间有空格)也不行(至于这两个帐户的区别,在网上也没有找到,还望大家不吝赐教 :))。如果登录帐户被更改,MSDTC服务会继续运行,但是在执行的时候可能会出错。而且,在事件日志的“应用程序”里面可以发现如下的出错信息:
正在运行 MS DTC 服务的帐户无效。 如果使用 Microsoft Management Console (MMC) 中的“服务”管理单元更改了服务帐户信息,就会发生这种情况。 MS DTC 服务将继续启动。请确认使用“组件服务管理器”更新了 MS DTC 服务帐户信息。
要更改成正确的登录帐户,我们可以:
- 在服务中找到Distributed Transaction Coordinator服务,选择“属性”;
在“登录”选项卡中,选择“此帐户”,帐户名填写“NT AUTHORITY\NetworkService”,密码为空;
在点击“确定”后重新启动服务。 - 或者,
在命令行下运行 msdtc -uninstall ,卸载 msdtc 服务;
再运行 msdtc -install ,安装 msdtc 服务。
然后我的做法是,
1、重新设置了帐户,在服务中找到Distributed Transaction Coordinator服务,选择“属性”;
在“登录”选项卡中,选择“此帐户”,帐户名填写“NT AUTHORITY\NetworkService”,密码为空;
2、关闭MSDTC服务:net stop msdtc
3、重置MSDTC日志:MSDTC -resetlog
4、开起MSDTC服务:net start msdtc
5、重启IIS:iisreset
问题解决。。。
3、
- WCF MSDTC 基础提供程序在OPEN上失败解决方法
- WCF Oracle 基础提供程序在 Open 上失败。
- Submit 操作失败。基础提供程序在 Open 上失败。 InnerException 消息: 服务器 'DBSERVER' 上的 MSDTC 不可用。
- "基础提供程序在Open上失败"
- 基础提供程序在 Open 上失败
- 基础提供程序在Open上失败
- Entity Framework MVC 使用事物后( new TransactionScope() ) 报错 服务器×××上的MSDTC不可用解决办法 基础提供程序在 Open 上失败
- WCF基础程序在Open上失败了!
- entity framework 基础提供程序在 Open 上失败
- c# 解决 EntityFramework 基础提供程序在 Open 上失败
- 问题:基础提供程序在 open 上失败。
- asp.net数据库操作时出现错误 其他信息: 基础提供程序在 Open 上失败。
- 解决方法:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序[转]
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序 解决方法
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序 解决方法
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序 解决方法
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序 解决方法
- "未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序"解决方法
- Android视频采集+H264编码
- 面向程序员的数据库访问性能优化法则
- 了解我们的工作,软件开发(转贴)
- 维度建模技巧总结
- 今天,你面向对象了吗?
- WCF MSDTC 基础提供程序在OPEN上失败解决方法
- vb.net常用函数
- 匈牙利算法
- 对领域驱动设计的初步认识(转-J道)
- 用crosstool-ng建立Linux 交叉编译环境
- ergherh
- 在内核中创建文件 filp_open/sys_open
- VC DirectShow开发环境变量配置及问题
- 面向对象概念总结