已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。
今天写ASP.NET程序,在网页后台的c#代码里写了个事务,事务内部对一张表进行批量插入,对另外一张表进行查询与批量插入。
结果第二张表查询后foreach迭代操作时报错:已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。
我的开发环境:开发机:WINXP,vs2010,IIS, 服务器:WIN2003,VS2010,SQL2005
解决:需要在开发机和服务器都添加MSDTC事务管理器(我直接操作Windows xp配置MSDTC的方法),具体如下:
1、删除注册表中的键:
1.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
2.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
4、停止MSDTC服务:net stop msdtc
5、卸载MSDTC服务:msdtc -uninstall
6、重新安装MSDTC服务:msdtc -install
操作系统最好不要用ghost安装。
启用网络Com+ 访问
启用网DTC
也一起安装一下
网络MSDTC配置方法我们有时会发现一下问题:已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。可以由本文解决。一、启用网络 DTC 访问的步骤
启用网络DTC是分布式数据库事物控制的必要条件。设置过程应依下面步骤进行。
1) 单击“开始”,指向“控制面板”,然后单击“添加或删除程序”;
2) 单击“添加/删除 Windows 组件”;
3) 选择“应用程序服务器”,然后单击“详细信息”;
4) 选择“启用网络 DTC 访问”, 网络管理 、网络事务、XA 事务。另外,DTC 登录帐户一定要设置为“NT Authority\NetworkService”,并且事务管理器通讯不要求进行验证。然后单击“确定”;
5) 单击“下一步”;
6) 单击“完成”;
7) 停止分布式事务处理协调器服务,然后重新予以启动;
8) 停止 Microsoft SQL Server 和其他参与分布式事务处理的资源管理器服务(如 Microsoft 消息队列),然后将其重新启动。
控制面板-----〉管理工具-----〉组件服务
选择组件服务-----〉计算机--------〉我的电脑,再点击鼠标右键。
引自:http://www.cnblogs.com/lastbeachhead/archive/2009/04/14/1435448.html
配置msdtc需要分别配置数据库服务器和开发机,因为只有两个机器都配置正确了,分布式事务才不会报乌七八糟的错误。如果数据库服务器和开发机是同一台机器,那就不用看本文了,因为不存在分布式事务的问题。
数据库服务器和开发机中配置msdtc的步骤是一样的,下面列出配置步骤。
1、防火墙。如果防火墙是关的,那就不用再设置了。如果防火墙是开的,那么确保msdtc.exe是在它的例外里,一般这个程序是在C:\Windows
\System32
\msdtc.exe这个角落。有时候你会发现在防火墙的例外里添加了msdtc,还是不行,那有可能是跟一个端口有关系,即135端口,这是个RPC端
口,在出错的时候,可以尝试将该端口也添加到防火墙的例外里。
2、打相关数据库补丁。如果数据库服务器是sql2000,那么确保已经打了sp4补丁。也许有人会说,这是什么年代了,还用sql2000做数据库服务
器,但是要记住,买单的是客户,而不是我们自己,客户一般情况下几年前买了sql2000,不一定会被你说服去花钱升级到2005或2008。如果数据库
是sql2005,那么最好把sq2 补丁打上。
3、msdtc的配置。msdtc的配置是在组件服务里进行的,具体如下图所示,我也就不一一说了。这里是用windows2008为例的,其它版本的设置都类似。
在使用本地协调器上打上勾。
设置msdtc属性页
关键是这页一定要设置正确。
4、设置com+。很多人遇到msdtc的问题后,在网上百搜搜不到解决办法,故流传被com+彻底打败了,偶对com+没什么研究,下面的设置也是从别人那里学的,我这里做个总结而已。
编辑[访问权限]和[启动和激活权限]的默认值,将network service账号设置为拥有所有权限。
5、检查注册表。检查下图中显示的两项的值。在注册表中的路径在图片的下方可以看到。
1.启动2台sql server服务器的msdtc服务,做cluster的话,必须为每个节点运行comclust.exe
2.2台sqlserver都要设置好对方的linkserver,
3.如果2台sql server服务器不属于同一个网段,则需要双方配置host,保证ping机器名可以ping通对方
4.可以使用dtcping工具测试一下
5.这样,就sql server可以进行分部式查询和事务操作了。
已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。的更多相关文章
- 已禁用对分布式事务管理器(MSDTC)的网络访问的解决方法之一
C# ASP.NET项目提示上述错误,在代码中使用分布式事务提示添加或修改到数据库的时候.添加数据到数据库时,不会设置实体类的主键字段.
- SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)
原文:SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC) 在可更新订阅中,在订阅设置更新方法,将 "排队更新" 设置为 " ...
- 应用程序-特定 权限设置并未向在应用程序容器不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户...的 COM 服务器应用程序的 本地 激活 权限。此安全权限可以使用组件服务管理工具进行修改。
很久以前发现我们的业务服务器上出现一个System的系统严重错误,查找很久都没有找到解决办法,今日再次查看服务器发现报错更频繁,于是就搜集各种资料进行查找解决办法,终于找到了一个解决办法. 错误截图介 ...
- 群集中的MS DTC分布式事务协调器
MS DTC在大多数SQL 服务器下都需要安装,若只是安装数据库引擎或Analysis 服务可不安装DTC.如果后需要使用分布式事务,则可在SQL Server群集安装完成后再安装DTC. 一.群集M ...
- Ubuntu 和 Redhat / Fedora 服务管理命令对比表(附Fedora16新的服务管理工具systemctl )
以 apache/httpd 服务作为例子 任务 Red Hat / Fedora Ubuntu Ubuntu (with sysv-rc-conf or sysvconfig) 立即启动/停止某服务 ...
- MSDTC启用——分布式事务
一.前言 最近在做一个项目的时候使用了.NET中的System.Transactions(分布式事务),当项目开发完成以后,调用的时候遇到了MSDTC的问题,在查阅了相关资料后将这个问题解决了,大致的 ...
- .NET分布式事务--TransactionScop
一.开启DTC服务 方式一 计算机—管理—服务—Distributed Transaction Coordinator—属性—开启 方式二 CMD命令子界面输入:net start msdtc 二.设 ...
- NET中的System.Transactions(分布式事务)
NET中的System.Transactions(分布式事务),当项目开发完成以后,调用的时候遇到了MSDTC的问题,在查阅了相关资料后将这个问题解决了,大致的问题主要是使用了分布式事务,而无法访问到 ...
- [WCF编程]12.事务:事务协议与管理器
一.事务协议 总体来说,WCF开发人员不需要涉及事务协议与管理器.我们应该依赖WCF来选择相应的事务协议和管理器,重点关注业务逻辑的实现. WCF是根据事务范围里的参与个体来选择事务管理协议的.事务管 ...
随机推荐
- Android 编程下的四大组件之服务(Service)
服务(Service) 是一种在后台运行,没有界面的组件,由其他组件调用开始.Android 中的服务和 Windows 中的服务是类似的东西,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类 ...
- sqldatasource控件设置where语句
按照学号查找显示信息,我现在也不知道各部分代表的含义,先记下来
- HTML-meta
设置meta: 默认下移动设备浏览器会像PC浏览器一样显示页面,这种时候需要进行设备宽度设置:一般情况下设置为: <meta name='viewport' content='width=dev ...
- Kali Linux 2016.2发布提供虚拟机以及系统镜像下载
Kali Linux 2016.2发布提供虚拟机以及系统镜像下载 Kali Linux 2016.2发布提供虚拟机以及系统镜像下载,本次Kali Linux 2016.2提供了五种桌面模式,分别为 ...
- 2^x mod n = 1
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
- Codeforces Round #330 (Div. 2)
C题题目出错了,unrating,2题就能有很好的名次,只能呵呵了. 水 A - Vitaly and Night /***************************************** ...
- 游戏 scrollView
using UnityEngine; using System.Collections; public class LLL : MonoBehaviour { Vector2 scrollPositi ...
- BZOJ4340 : BJOI2015 隐身术
枚举$B$串的每个后缀,统计出该后缀所有满足条件的前缀. 考虑暴力搜索,设状态$(x,y,z)$表示当前需要考虑$A$从$x$开始的后缀,$B$从$y$开始的后缀,之前部分编辑距离为$z$. 那么首先 ...
- 【BZOJ】1834: [ZJOI2010]network 网络扩容(最大流+费用流)
http://www.lydsy.com/JudgeOnline/problem.php?id=1834 我又思考人生了T_T,nd的数组开小了,一直wa,调了一个小时才发现啊!!!!!我一直以为我的 ...
- linux网络配置相关命令、虚拟网络接口eth0:0
网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0.eth1...... ethX.而普通猫和ADSL的接口 ...