【发布时间】:2011-04-03 14:54:56
【问题描述】:
我正在使用继承 System.Servicemodel.Channels.Message 的自定义消息。
我的自定义消息获取从数据库中提取的 IEnumerable 集合。
WCF 服务是事务性的(已经过测试)。
MS-DTC 已启用。
问题是,当 protected override void OnWriteBodyContents(XmlDictionaryWriter writer) 方法在自定义消息处执行时,没有事务。
System.Transactions.Transaction.Current 为空。在执行服务时,事务流工作正常,但是当消息由 WCF 机制写入时,似乎它超出了事务,导致 DB 命令(拉取数据)在没有事务的情况下执行。
请注意,如果我传递的是简单数组而不是 IEnumerable,则 DB 操作将在事务下执行,但我希望它与响应写入并行执行。
请提供任何想法,为什么交易丢失以及可以做些什么来激活它?
非常感谢!
塔米尔。
【问题讨论】:
标签: wcf transactions message msdtc distributed-transactions