C# Wcf交易
有没有办法在wcf操作中知道事务已提交 好的,第二次尝试更具体一些 我得到了一个WCF服务,它的操作允许事务流 现在,当客户机调用我的wcf服务时,它可以有一个事务。但我的服务也对客户机上的交易成功这一事实感兴趣。因为在我的wcf服务水平上,如果一切顺利。它还有其他事情要做,但只有在所有事务都已提交的情况下C# Wcf交易,c#,.net,wcf,C#,.net,Wcf,有没有办法在wcf操作中知道事务已提交 好的,第二次尝试更具体一些 我得到了一个WCF服务,它的操作允许事务流 现在,当客户机调用我的wcf服务时,它可以有一个事务。但我的服务也对客户机上的交易成功这一事实感兴趣。因为在我的wcf服务水平上,如果一切顺利。它还有其他事情要做,但只有在所有事务都已提交的情况下 有什么我可以订阅的活动吗?这取决于服务本身以及您处理事务的方式。如果您正在参与,那么如果对客户机的调用毫无例外地成功,您可以假定事务已经发生 但是,如果这是在另一个事务的上下文中,那么在包含
有什么我可以订阅的活动吗?这取决于服务本身以及您处理事务的方式。如果您正在参与,那么如果对客户机的调用毫无例外地成功,您可以假定事务已经发生 但是,如果这是在另一个事务的上下文中,那么在包含该事务的事务完成之前,您无法确定该事务是否已通过 即使您正在使用,如果您已启用服务以使用事务,您仍然必须考虑包含的事务(如果有)
为了获得更完整的答案,您必须提供更多有关事务与呼叫的位置的信息。在允许TransactionFlow的操作中,尝试使用上面的操作行为属性:
[OperationBehavior(TransactionScopeRequired=true)]
如果一个事务从客户端流出,那么服务将使用它
bool isTransactionComplete = true;
try
{
using (TransactionScope trScope = new TransactionScope(TransactionScopeOption.Required))
{
//some work
trScope.Complete();
}
}
catch (TransactionAbortedException e)
{
//Transaction holder got exception from some service
//and canceled transaction
isTransactionComplete = false;
}
catch//other exception
{
isTransactionComplete = false;
throw;
}
if (isTransactionComplete)
{
//Success
}
正如casperOne所写,这取决于设置。但您应该了解复杂的事务,如
1) 一个服务实例的会话服务和并发事务
2) 交易内部交易PDIDY我的人!你厌倦了所有的唱歌和其他东西,决定制作一个WCF服务?尊敬!你能说得更具体一点吗?你的问题甚至都不押韵。有没有类似的活动我可以订阅,以获得交易已提交的通知?