我目前正在处理的项目涉及使用会话变量的MS SQL Server和ASP.net Web服务。显然,这会导致客户端的调用以顺序方式执行。我想确保这些方法异步执行。
在做了一些研究之后,在我看来,最好的方法是使用跟踪会话的表(使用guid说明)和每个会话的单独表来持久保存数据库中的会话状态。
在我直接深入研究之前,如果我将SQL Server配置为存储会话,我需要知道是否可以获得与Web服务相同的异步操作感。
可以吗?
答案 0 :(得分:1)
很抱歉这样说,但是异步执行代码和使用会话变量的唯一方法是制作完全自定义的会话解决方案 - 我的意思是完全自定义并完全禁用asp.net会话。
进行会话的基本提示:
OnPreInit
上加载会话,仅保存OnUnload
Mutex
代码锁定,因为会话是同步而不注意它,但是没有会话锁定可能会执行两次,如新插入到数据库电话。相对
Web app blocked while processing another web app on sharing same session
What perfmon counters are useful for identifying ASP.NET bottlenecks?
Replacing ASP.Net's session entirely
回答问题if I configure SQL Server to store the session ?
会话仍然是锁定并阻止其余请求。如果你在SQL服务器或其他媒体上的会话没有改变工作方式,只有保存数据的位置。