[英]Handling transactions in asynchronous MVC actions
我想知道在異步MVC動作中處理事務的好/安全方法是什么。 特別是MSMQ事務。 我目前正在使用動作過濾器在同步動作中處理它們,該動作過濾器在OnActionExecuting中創建事務對象,將其保存到靜態類中的線程本地存儲中,然后提交(如果適用)並在OnActionExecuted中銷毀事務。
我猜測這里使用TLS將在異步操作中分解。
除了將事務實例傳遞給每個方法調用之外,是否還有一種好/健壯的方法可以在異步操作中完成此操作?
我想象(我還沒有測試過) System.Web.Mvc.IActionFilter
的OnActionExecuting/OnActionExecuted
仍然在異步MVC操作的開始和結束時被調用,就像同步操作一樣。
假如是真的,只是用CallContext.LogicalSetData
在OnActionExecuting
和CallContext.LogicalGetData
在OnActionExecuted
而不是TLS,因為在他的博客由斯蒂芬·克利里描述 。 您的事務狀態將在await
繼續時跨線程流動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.