精华内容
下载资源
问答
  • 由于通信问题,MSDTC 事务管理器无法从源事务管理器提取事务。可能原因如下: 存在防火墙并且没有 MSDTC 进程的例外、两台计算机根据其 NetBIOS 名称无法找到彼此,或未对于两个事务管理器之一启用网络事务支持。 ...
  • 由于通信问题,MSDTC 事务管理器无法从源事务管理器提取事务。可能原因如下: 存在防火墙并且没有 MSDTC 进程的例外、两台计算机根据其 NetBIOS 名称无法找到彼此,或未对于两个事务管理器之一启用网络事务支持。 ...
  • 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。 与基础事务管理器的通信失败。    .net 代码里 写事务代码 如: using ...

    已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。

    与基础事务管理器的通信失败。

     

     .net 代码里 写事务代码

    如:


    using System.Transactions;

    using (TransactionScope ts = new TransactionScope())
    {

    }
    ts.Complete();

     

     

     

    DTC登陆账户为:NT Authority/NetworkService 

     

    防火墙里 

    在sqlserver服务器上配置:IP 和计算机名

     

    在web服务器上配置:ip 和计算机全名

     

    展开全文
  • 这两天,因为一台MS SQL2005服务器的系统有些问题...原来一直运行无问题的程序,在添加新记录的时候,出现事务错误。而在编辑,删除等均正常。 我的网络环境是一台是Web服务器,一台是数据服务器,同一机房,相...

    http://www.cnblogs.com/joejoe/archive/2012/08/10/2631204.html

     

    这两天,因为一台MS SQL2005服务器的系统有些问题,重启后不能正常登录系统,采取了恢复上次正确配置的方式登录。原来一直运行无问题的程序,在添加新记录的时候,出现事务错误。而在编辑,删除等均正常。

    我的网络环境是一台是Web服务器,一台是数据服务器,同一机房,相同网段,IP不一样。

    事务异常错误提示如下:

    System.Transactions.TransactionManagerCommunicationException: 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。 ---> System.Runtime.InteropServices.COMException (0x8004D024): 该事务管理器已经禁止了它对远程/网络事务的支持。 (异常来自 HRESULT:0x8004D024)    在 System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim)    在 System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)    --- 内部异常堆栈跟踪的结尾 ---    在 System.Transactions.Oletx.OletxTransactionManager.ProxyException(COMException comException)    在 System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)    在 System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx)    在 System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx)    在 System.Transactions.EnlistableStates.Promote(InternalTransaction tx)    在 System.Transactions.Transaction.Promote()    在 System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction)    在 System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)    在 System.Data.SqlClient.SqlInternalConnection.GetTransactionCookie(Transaction transaction, Byte[] whereAbouts)    在 System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)    在 System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)    在 System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)    在 System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)    在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)    在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)    在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)    在 System.Data.SqlClient.SqlConnection.Open()    在 System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser user)    在 System.Data.Linq.SqlClient.SqlProvider.get_IsSqlCe()    在 System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode()    在 System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)    在 System.Data.Linq.Table`1.System.Linq.IQueryProvider.Execute[TResult](Expression expression)    在 System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source, Expression`1 predicate)    在 GCEVideoMonitor.BLL.SiteInfo.GetDeviceTypeKey(Int32 deviceTypeId, Int32 rtType)    在 GCEVideoMonitor.Manage.Monitor.MonitorChannelManage.AddSubmit(Object sender, EventArgs e)

     

    一开始,以为是MSDTC的问题,但我的MSDTC均有开启,根据错误提示“已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问”在网上搜索,配置与网上所说一致,尝试了所有的方法,异常依然如此。后来也出现过下面的异常现象:

    System.Transactions.TransactionManagerCommunicationException: 与基础事务管理器的通信失败。 ---> System.Runtime.InteropServices.COMException (0x80004005): 对 COM 组件的调用返回了错误 HRESULT E_FAIL。    在 System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim)    在 System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)    --- 内部异常堆栈跟踪的结尾 ---    在 System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)    在 System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx)    在 System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx)    在 System.Transactions.EnlistableStates.Promote(InternalTransaction tx)    在 System.Transactions.Transaction.Promote()    在 System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction)    在 System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)    在 System.Data.SqlClient.SqlInternalConnection.GetTransactionCookie(Transaction transaction, Byte[] whereAbouts)    在 System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)    在 System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)    在 System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)    在 System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)    在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)    在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)    在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)    在 System.Data.SqlClient.SqlConnection.Open()    在 System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser user)    在 System.Data.Linq.SqlClient.SqlProvider.get_IsSqlCe()    在 System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode()    在 System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)    在 System.Data.Linq.Table`1.System.Linq.IQueryProvider.Execute[TResult](Expression expression)    在 System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source, Expression`1 predicate)    在 GCEVideoMonitor.BLL.SiteInfo.GetDeviceTypeKey(Int32 deviceTypeId, Int32 rtType)    在 GCEVideoMonitor.Manage.Monitor.MonitorChannelManage.AddSubmit(Object sender, EventArgs e)

    仔细分析,并开启代码调试,发现“GCEVideoMonitor.BLL.SiteInfo.GetDeviceTypeKey(Int32 deviceTypeId, Int32 rtType)" 这个地方引起异常,把这个方法的代码直接放在事务过程中使用,不调用该方法,这个地方的异常不再产生。

    在添加带有事务的新记录,测试,出现下面的异常信息:

    System.Transactions.TransactionException: 此操作对该事务的状态无效。 ---> System.TimeoutException: 事务超时    --- 内部异常堆栈跟踪的结尾 ---    在 System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaction atomicTransaction)    在 System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification)    在 System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)    在 System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)    在 System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)    在 System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)    在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)    在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)    在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)    在 System.Data.SqlClient.SqlConnection.Open()    在 System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser user)    在 System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)    在 System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries)    在 System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)    在 System.Data.Linq.ChangeDirector.StandardChangeDirector.DynamicInsert(TrackedObject item)    在 System.Data.Linq.ChangeDirector.StandardChangeDirector.Insert(TrackedObject item)    在 System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)    在 System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)    在 GCEVideoMonitor.DAL.GCEVideoMonitor3DataContext.SubmitChanges(ConflictMode failureMode) 位置 E:\正式项目VM2\GCE3.0\GCETeam\GCE3.0\GCEVideoMonitor\GCEVideoMonitor.DAL\Entities\GCEVideoMonitor3DataContext.Manager.cs:行号 56    在 System.Data.Linq.DataContext.SubmitChanges()    在 GCEVideoMonitor.DAL.GCEVideoMonitor3DataContext.SaveChanges() 位置 E:\正式项目VM2\GCE3.0\GCETeam\GCE3.0\GCEVideoMonitor\GCEVideoMonitor.DAL\Entities\GCEVideoMonitor3DataContext.Generated.cs:行号 999    在 GCEVideoMonitor.Manage.Monitor.MonitorChannelManage.AddSubmit(Object sender, EventArgs e) 位置 E:\正式项目VM2\GCE3.0\GCETeam\GCE3.0\GCEVideoMonitor\GCEVideoMonitor.Manage\Monitor\MonitorChannelManage.aspx.cs:行号 161

    该异常,网上有解析:

    使用方式不当,主要有两种吧: 1,先调用了事务,再去打开数据库连接 2,在一个事务里面嵌套了另外一个事务

    因此,在代码里面修改如下:

    using (var ts = new System.Transactions.TransactionScope()) {

      using (var dc = BLL.SiteInfo.CreateDBDataContext())    {

          ....

       }

    }              

    变更为:

    using (var dc = BLL.SiteInfo.CreateDBDataContext()) {

    using (var ts = new System.Transactions.TransactionScope())    {

          ....

       }

    }      

    成功添加了记录,所有异常解决。

    另外,我发觉我的电脑不能添加记录,但在同事的电脑,他却可以添加记录,而不产生异常,是非常诡异的地方。

    无语,随笔以便后来者。

    转载于:https://www.cnblogs.com/zcm123/archive/2013/06/06/3120648.html

    展开全文
  • 最近在新的环境上开发,编写分布式的代码时(Using(TransactionScope ts = new TransactionScope())),遇到“基础事务管理器的通信失败。“这个错误, 参考了网上各种资料进行了各种疯狂的设置,都没办法解决,...

    最近在新的环境上开发,编写分布式的代码时(Using(TransactionScope ts = new TransactionScope())),遇到“基础事务管理器的通信失败。“这个错误,

    参考了网上各种资料进行了各种疯狂的设置,都没办法解决,包括使用用微软Dtcping.exe程序测试通过后,运行代码后居然还是会爆这个错误,差点崩溃。

     

    最后权宜的解决办法是,将C:\windows\system32\MSDTC.exe程序加入到系统的"允许程序或功能通过防火墙"清单中,换句话说,就是把防火墙关了,程序可以成功执行。

    这种办法可能会造成安全隐患,还是希望有高人能指点下。

    转载于:https://www.cnblogs.com/shoter193/p/3513221.html

    展开全文
  • 异常信息: System.Transactions.... ---> System.Runtime.InteropServices.COMException: 由于通信问题,MSDTC 事务管理器无法从源事务管理器提取事务。可能原因如下: 存在防火墙并且没有 MSDTC 进程的例外、两台计算

    异常信息:

    System.Transactions.TransactionManagerCommunicationException: 与基础事务管理器的通信失败。 ---> System.Runtime.InteropServices.COMException: 由于通信问题,MSDTC 事务管理器无法从源事务管理器提取事务。可能原因如下: 存在防火墙并且没有 MSDTC 进程的例外、两台计算机根据其 NetBIOS 名称无法找到彼此,或未对于两个事务管理器之一启用网络事务支持。 (异常来自 HRESULT:0x8004D02B)


    解决办法:

    一、对双方MSDTC组件设置
    步骤:
    1.控制面板->管理工具->组件服务->计算机->我的电脑->右键->属性
    2. 选择MSDTC页, 确认"使用本地协调器"
    3.点击下方"安全配置"按钮
    4. 勾选: "允许网络访问","允许远程客户端","允许入站","允许出站","不要求进行身份验证".
    5. 对于数据库服务器端, 可选择"要求对呼叫方验证"
    停止分布式事务协调器服务,然后重新予以启动。   
    停止参与分布式事务的任何资源管理器服务(如 Microsoft SQL Server 或 Microsoft Message Queue Server),然后重新予以启动。   
    6.在双方防火墙中增加MSDTC.exe例外,可用命令行: netsh firewall set allowedprogram %windir%\system32\msdtc.exe MSDTC enable
    7.dtC用到remoting的135端口,确保防火墙没有阻止

    二、在数据库服务器(MSSQL)上的 hosts 文件中加入 Web 服务器(IIS) 的 IP 和 主机名 映射对  
    1.定位到 C:\WINDOWS\system32\drivers\etc 目录
    2.记事本打开 hosts 文件(没有扩展名)
    3.添加一行 Web 服务器 IP 和 主机名映射, 如:
    10.10.1.118 MyWebServerHostName
    192.168.1.25 jack


    展开全文
  • 异常信息: System.Transactions.... System.Runtime.InteropServices.COMException: 由于通信问题,MSDTC 事务管理器无法从源事务管理器提取事务。可能原因如下: 存在防火墙并且没有 MSDTC 进程的例外、两台...
  • 分布式事务管理器msdtc // 分布式事务管理器(MSDTC)的实现方法 https://www.cnblogs.com/Jeff-Lai/articles/7832634.html 转载于:https://www.cnblogs.com/ijunxiong/articles/10558554.html
  • 配置msdtc需要分别配置数据库服务器和开发机,因为只有两个机器都配置正确了,分布式事务才不会报乌七八糟的错误。如果数据库服务器和开发机是同一台机器,那就不用看本文了,因为不存在分布式事务的问题。  ...
  • 一次分布式事务管理器(MSDTC)的事务处理异常的排错
  • 出现了“该伙伴事务管理器已经禁止了它对远程/网络事务的支持”的错误,一个很叫人郁闷的错误,找了很多资料,基本的解决方法整理如下:1. 单击“开始”,指向“控制面板”,然后单击“添加/删除程序”。 2. 单击...
  • [color=#FF0000]禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问[/color] } } 疑惑的一点是,之前在上一家公司也有这样的baseBll,但那时候...
  • C# ASP.NET项目提示上述错误,在代码中使用分布式事务提示添加或修改到数据库的时候。添加数据到数据库时,不会设置实体类的主键字段。 转载于:https://www.cnblogs.com/billboy/p/6145419.html...
  • 出现了“该伙伴事务管理器已经禁止了它对远程/网络事务的支持”的错误,一个很叫人郁闷的错误,找了很多资料,基本的解决方法整理如下:1. 单击“开始”,指向“控制面板”,然后单击“添加/删除程序”。 2. 单击...
  • "已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。" 我已经设置了服务器允许分布式事务了,但还是出现上面的错误,是不是数据库中也需要设置...
  • MSDTC启用——分布式事务 作者:jianxuanbing 本文为作者原创,转载请注明出处:https://www.cnblogs.com/jianxuanbing/p/7242254.html 阅读目录 一、前言 二、MSDTC说明 三、解决方案 四、相关指令 五、...
  • Windows 可更新订阅立即更新启用分布式事务协调MSDTC) 原文:SqlServer & Windows 可更新订阅立即更新启用分布式事务协调MSDTC) 在可更新订阅中,在订阅设置更新方法,将“排队更新...
  • Microsoft的分布式服务支持团队每天都会帮助客户排除一些最常见的分布式事务错误,这些错误是MSRPC(Microsoft远程过程调用)通信在网络中因某些安全\防火墙设置而失败的直接结果。在应用程序层(如SQL)上,这些是...
  • DotNet开发过程中,涉及多个数据库和不同数据库的分布式事务(Distributed Transaction)开发,有时会碰到“与基础事务管理器的通信失败”的错误。导致这个错误一般有下列三个原因: 1) MSDTC设置不正确; 2) ...
  • MSDTC 分布式事务错误解决

    千次阅读 2007-09-18 15:50:00
    最近 在做项目的过程中总会遇到MSDTC的错误,网上也很多人问到这个问题,错误信息大约描述为: [COMException (0x8004d00e): 此事务已明地或暗地被确认或终止 (异常来自 HRESULT:0x8004D00E)] System.Transactions....
  • 该伙伴事务管理器已经禁止了它对远程/网络事务的支持 1.双方启动MSDTC服务 MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。该服务的进程名为Msdtc.exe,该进程调用系统...
  • 另外,DTC 登录帐户一定要设置为“NT Authority\NetworkService”,并且事务管理器通讯不要求进行验证。然后单击“确定”; 5) 单击“下一步”; 6) 单击“完成”; 7) 停止分布式事务处理协调器服务,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,248
精华内容 2,499
关键字:

msdtc事务管理器