使用asmx服务通过ajax更新会话变量在连续进行大量调用时调用问题?
我有一个asmx(项目是遗留的ASP.NET,在Web应用程序层没有WCF)webservice,用于更新会话变量。当单击一个复选框时,会有一个使用此方法的ajax调用。它可以工作,除非你一个接一个地点击复选框(可以这样做)。 ajax调用挂起(永不完成)。
我认为这与尝试更新会话变量的多个请求有关,但我不确定。任何人遇到这个并提出一些建议吗?注意:我知道WCF可能是一个可能的答案,但我想知道是否有一个解决方案不需要立即将asmx服务更改为WCF。
答案 0 :(得分:0)
使用asmx服务通过ajax更新会话变量会在连续进行大量调用时调用问题吗?
是的,因为ASP.NET将按顺序而不是并行地排队和执行这些请求,因为会话对象不是线程安全的。如果来自同一会话的多个请求被发送到某个ASP.NET处理程序,并且如果此处理程序写入会话,则它将简单地对这些请求进行排队。
答案 1 :(得分:0)
如果您的服务仅更新会话变量中的相同密钥,您可以尝试将值本地存储在cookie中,直到值发生变化。然后,当值发生更改时,您可以调用ASMX服务将新值存储在会话变量中。
答案 2 :(得分:0)
根据您使用的AJAX库,您始终可以选择在触发下一个呼叫之前放弃之前的正在运行的呼叫。如果您可以详细说明如何调用Web服务,我可以帮助您在开始新呼叫之前放弃先前的呼叫。