0
我正在測試工作流基礎4.5中的接收事務範圍,我認爲它有問題!工作流基金會和DTC事務回滾行爲不端
看到我的roolback交易或者通過明確的roolback:
using (TransactionScope s = new TransactionScope())
{
using (ServiceReference1.ServiceClient cli = new ServiceReference1.ServiceClient())
{
Transaction t = Transaction.Current;
cli.GetData(new ServiceReference1.GetData() { data = 10, ID = id });
t.Rollback();
}
}
或由TransactionScope的拋出異常:
using (TransactionScope s = new TransactionScope())
{
using (ServiceReference1.ServiceClient cli = new ServiceReference1.ServiceClient())
{
cli.GetData(new ServiceReference1.GetData() { data = 10, ID = id });
throw new Exception("Error!");
}
}
我希望太rolledback工作流程!換句話說,我期望接收「GetData」仍然有效!但那不會發生。工作流被執行,GetData不再有效!
還有其他的「接收」了「的GetData」之後,以保證工作流不會進入「已完成」的狀態......
我敢肯定,我的交易流入了工作流程,因爲裏面工作流我有一個活動,返回我的交易ID(當然匹配的應用程序)
任何人都可以告訴發生了什麼事?我錯過了什麼?
Futher筆記:
一切都在我的機器上運行(包括後備存儲時,SQL Server 2012) DTC啓用
但我的實例本身是堅持!它顯示如果我手動查詢數據庫! – Leonardo 2013-03-05 14:57:49
即使AbortInstanceOnTransactionFailure = true,它是否也是相同的行爲? (TransactedReceiveScope的) – Sentinel 2013-03-05 16:04:50