我正在开发一个 asp.net 网站。
- 当两个不同的用户使用不同的会话访问该网站时,一个用户的内容将被交换给另一个用户。
- 我正在使用 javacsript,从 .aspx 页面和 C# 在代码后面调用 pagemethods。
- 此问题主要发生在两个用户同时调用相同的功能时。
- 我认为静态变量可能会导致此问题,并尝试不使用任何静态变量或静态函数,但 pagemethod 函数除外,其中 pagemethod 必须是静态的。
请帮我解决这个问题。
我正在开发一个 asp.net 网站。
请帮我解决这个问题。
我们遇到了类似的问题,发现是我们的负载均衡器(f5 Big-IP)弄乱了会话 ID。我们将负载均衡器更改为有状态的,它现在可以完美运行...
sessionState
在 web.config 中添加:
<configuration>
<system.web>
<sessionState timeout="120" mode=" [InProc|StateServer|SQLServer|Custom]" cookieless="false" />
</system.web>
</configuration>
也尝试以下解决方案:
正如@TombMedia 的答案中提到的,变量也需要锁定。
此链接可能对您有所帮助:Exploring Session in ASP.NET
删除您用于响应您的请求的静态变量和静态方法。
检查您的会话状态配置(参见下面的示例)。也许您使用“InProc”以外的另一种模式并在一些问题中运行。
<sessionState mode="InProc" cookieless="false" timeout="60" />
您还可以考虑使用带有使用 SessionID 作为前缀的键的缓存实例。企业库提供了一个很好的缓存实现。
希望这可以帮助。
这将在 Web.config 和 <%@ outputcache duration="1" varybyparam="none" %> 中设置,以删除所有 .aspx 表单。
问候卢比