我有这个非常简单的工作流程:
大家都可以看到它包含一个简单的分配和一个sendresponse,都在接收事务范围内。
现在在消费者方面我有这么简单的代码:
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
}
现在我的问题: 我不知道为什么但是在“POINT 1”中我的交易总是中止! 没有异常被抛出,没有错误,没有回滚也没有什么......它只是流产了......任何人都可以帮助我吗?
btw:我希望POINT 1中的状态是Commited ......
答案 0 :(得分:1)
您的问题中是否包含任何WCF配置详细信息?您是否也使用了适当的绑定并启用了交易?
我前段时间对这个问题做过blog post。希望有所帮助。
答案 1 :(得分:0)
我检查了“PersistBeforeSend”...所以当我取消选中它时,一切都恢复到预期的状态......我不知道它为什么会起作用......它只是... ...