我在Windows Server 2003计算机上托管了基于WCF的Web服务。该数据库是solaris上的Oracle 10G。 Web服务在某些地方广泛使用事务管理器和ado.net事务。大多数事务只涉及一个资源(多个oracle存储过程调用)。其中一些是两个资源(MSMQ和oracle存储过程)。 鉴于此,必须在Windows机器上启用网络DTC。它已经启动了MSDTC服务。 从Web服务客户端到Web服务没有事务流。 它似乎没有启用网络DTC,但我想确定。
平台是.Net 2.0 SP1 + 3.0(适用于WCF)。 Oracle驱动程序是ODP.Net v11.1.0.6
答案 0 :(得分:1)
我的意思是不需要启用网络DTC。唯一的要求是MSDTC和OracleMTSRecoveryService服务都已启动。我可以使用DTC组件服务查看器控制面板应用程序查看发生的事务。
答案 1 :(得分:0)
如果客户端事务没有流动或者没有多个持久资源,则事务管理器不会将事务提升为分布式事务。
您可以通过访问Transaction类的TransactionInformation属性来检查事务标识符。
此类具有DistributedIdentifier属性。如果事务未被提升为分布式事务,则DistributedIdentifier将为Guid.Empty。