簡體   English   中英

在異步MVC操作中處理事務

[英]Handling transactions in asynchronous MVC actions

我想知道在異步MVC動作中處理事務的好/安全方法是什么。 特別是MSMQ事務。 我目前正在使用動作過濾器在同步動作中處理它們,該動作過濾器在OnActionExecuting中創建事務對象,將其保存到靜態類中的線程本地存儲中,然后提交(如果適用)並在OnActionExecuted中銷毀事務。

我猜測這里使用TLS將在異步操作中分解。

除了將事務實例傳遞給每個方法調用之外,是否還有一種好/健壯的方法可以在異步操作中完成此操作?

我想象(我還沒有測試過) System.Web.Mvc.IActionFilterOnActionExecuting/OnActionExecuted仍然在異步MVC操作的開始和結束時被調用,就像同步操作一樣。

假如是真的,只是用CallContext.LogicalSetDataOnActionExecutingCallContext.LogicalGetDataOnActionExecuted而不是TLS,因為在他的博客由斯蒂芬·克利里描述 您的事務狀態將在await繼續時跨線程流動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM