我有这个非常简单的工作流程:
正如大家所见,它由一个接收、一个简单的分配和一个发送响应组成,所有这些都在一个接收事务范围内。
现在在消费者方面,我有这段简单的代码:
static void Main(string[] args)
{
using (TransactionScope scope = new TransactionScope())
{
Transaction t = Transaction.Current;
t.TransactionCompleted += t_TransactionCompleted;
TransactedServiceRef.ServiceClient cli = new TransactedServiceRef.ServiceClient();
string aux = cli.GetData(new TransactedServiceRef.GetData() { id = 1, value = 1 });
Console.WriteLine(aux);
scope.Complete();
}
Console.ReadLine();
}
static void t_TransactionCompleted(object sender, TransactionEventArgs e)
{
//POINT 1
}
现在我的问题是:我不知道为什么,但在“第 1 点”中,我的交易总是中止!!!没有抛出异常,没有错误,没有回滚,什么都没有......它只是中止......有人可以帮助我吗?
顺便说一句:我希望在 POINT 1 中的状态是 Commited ......