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