C# MVC 5 ajax调用会话ID丢失

C# MVC 5 ajax调用会话ID丢失,c#,asp.net,ajax,C#,Asp.net,Ajax,我在VS2013中使用ASP.NET MVC 5。 我面临一个并发问题。从ajax异步调用的两个控制器方法同时使用一个列表。这会导致以下错误: 源数组不够长。检查src索引和长度,以及 数组的下界 这是一个相当无用的错误 问题是,通常这两个ajax调用都会由服务器逐个处理。因此,会话对象在内部被锁定 当我检查这两个控制器操作的会话对象时,它们具有不同的SessionId。cookie(在Fiddler中看到)是相同的。因此,对于不同的SessionId,它们必须锁定在不同的会话上,从而导致冲突

我在VS2013中使用ASP.NET MVC 5。 我面临一个并发问题。从ajax异步调用的两个控制器方法同时使用一个列表。这会导致以下错误:

源数组不够长。检查src索引和长度,以及 数组的下界

这是一个相当无用的错误

问题是,通常这两个ajax调用都会由服务器逐个处理。因此,会话对象在内部被锁定

当我检查这两个控制器操作的会话对象时,它们具有不同的SessionId。cookie(在Fiddler中看到)是相同的。因此,对于不同的SessionId,它们必须锁定在不同的会话上,从而导致冲突

我在整个项目中使用会话来存储变量,因此我知道它可以正常工作

一个非常糟糕的黑客确实“修复”了这个问题(只是为了证明它是一个并发问题)是在控制器类中创建一个静态对象并锁定它


为什么这两个ajax调用的SessionId不一样

Asp.net序列化对会话状态的访问。我不知道这是否有帮助,但您可以使用类或方法注释关闭会话状态。看看我刚才问的这个问题的答案,可能会有帮助。谢谢,但我真的希望请求一个接一个地执行。这样就不可能同时访问数据库。