.NET MVC异步调用中的Session问题
需要異步處理一個(gè)輸入問(wèn)題。
?
以下均代碼適用 MVC4
?
controller 代碼如下:
?
?????public?class?TestController?:?AsyncController
{????????public?async?Task<ActionResult>?Get1()
????????{
????????????await?Task.Delay(10000);
????????????return?Content(DateTime.Now.ToString("HH:mm:ss"));
????????}
????}
?
?
?
?在做一個(gè)長(zhǎng)鏈接調(diào)用這個(gè) 方法的時(shí)候,發(fā)現(xiàn)在 pedding 狀態(tài)下刷新頁(yè)面(或者轉(zhuǎn)向另外一個(gè)有Session調(diào)用的頁(yè)面)的時(shí)候 被 block 了。
?
?經(jīng)過(guò)1天的反復(fù)實(shí)驗(yàn),發(fā)現(xiàn)問(wèn)題出現(xiàn)在 Session。
當(dāng)你在一個(gè) 使用了 Session 的頁(yè)面中進(jìn)行異步調(diào)用,那么會(huì)被阻止,因?yàn)?Session?被??lock 了。
?
?
問(wèn)題解決:
?
為異步controller 增加屬性:?
?
[SessionState(System.Web.SessionState.SessionStateBehavior.Disabled)]?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/cloudbeer/archive/2012/09/26/2703784.html
總結(jié)
以上是生活随笔為你收集整理的.NET MVC异步调用中的Session问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: AIX 用户管理
- 下一篇: 设计模式——原型模式