在web方法中设置enableSession = true时阻止回发

时间:2015-04-21 07:50:12

标签: c# asp.net web-services session

我正在为webmethod使用asp.net jquery ajax asynchronous call进行非常漫长的过程。我使用session variable来存储对象,因此我在webservice的webmethod声明中设置了EnableSession = true

但问题是,在设置true会话后,它会阻止任何行为,如postback,直到漫长的过程完成,用户无法注销或回发或打开另一个aspx页。那么我们如何解决这个问题,请帮助任何人知道这个问题。

1 个答案:

答案 0 :(得分:1)

问题是Session对象已被锁定,并且任何使用它的请求都将被锁定,直到您长时间运行的进程释放它。

看看这个SO Q& A:Is it possible to force request concurrency when using ASP.NET sessions?

您希望改变长期运行流程的设计,使其不依赖Session。例如,将所需的会话数据存储在其他位置(例如在DB中),让长进程从备用存储中读取数据。