需要异步处理一个输入问题。
以下均代码适用 MVC4
controller 代码如下:
public class TestController : AsyncController
{ public async Task<ActionResult> Get1() { await Task.Delay( 10000); return Content(DateTime.Now.ToString( " HH:mm:ss ")); } }
在做一个长链接调用这个 方法的时候,发现在 pedding 状态下刷新页面(或者转向另外一个有Session调用的页面)的时候 被 block 了。
经过1天的反复实验,发现问题出现在 Session。
当你在一个 使用了 Session 的页面中进行异步调用,那么会被阻止,因为 Session 被 lock 了。
问题解决:
为异步controller 增加属性:
[SessionState(System.Web.SessionState.SessionStateBehavior.Disabled)]