2

逗人分佈式事務,的LightSwitch:在Azure上

我的情況,我要的LightSwitch的內部數據庫上執行更新,並呼籲在保存管道的一些SQL存儲過程都在一個事務中,這樣,如果一個錯誤發生在LS保存管道中,然後我的存儲過程調用被回滾。

這樣做的推薦方法是在SaveChanges_Executing事件中設置環境事務,並將其置於SaveChanges_Executed和SaveChanges_ExecuteFailed事件中。正如本文章http://www.codemag.com/Article/1103071

描述但是,這裏有兩個致命的問題:

  1. 當我發佈在Azure上的應用程序,因爲分佈式事務不支持有它不工作。
  2. 當我嘗試使用ServerApplicationContext保存對ApplicationData源的更改時,它也會引發錯誤。該錯誤是這樣的:在底層提供對失敗EnlistTransaction

有沒有人發現了一個更清潔的方式來處理LightSwitch中的作品都在Azure上,並通過ServerApplicationContext交易?

非常感謝

回答

2

目前,利用MSDTC分佈式事務不會對SQL Azure的工作。但是,它們在Azure中運行的虛擬機中可以很好地對付SQL Server。一般來說,MSDTC綁定在域控制器上運行,這在公共雲環境中沒有意義。可能需要一種替代DTC,但這不是今天公開宣佈的事情。

我不認爲Lightswitch是這裏的主要問題(雖然也許它有一些超出我所描述的額外問題)。

我希望至少解釋爲什麼今天不行 - 我希望我對你有更好的答案,但現在不可能。正在使用的「解決方法」是構建能夠對每一方(或不是)進行的提交具有彈性的應用程序,並從失敗的案例中進行恢復。