我正在开发一个asp.net网站。
请帮我解决这个问题。
答案 0 :(得分:5)
也可能与线程有关。 Lock这些变量,看看是否有帮助。
静态方法不保证静态变量状态,即使这些方法保证是线程安全的。您必须管理该状态,并且asp.net将静态变量视为在所有用户之间共享。请参阅相关问题的this answer。
答案 1 :(得分:1)
我们遇到了类似的问题,发现我们的loadbalancer(f5 Big-IP)搞砸了session-id。我们将负载均衡器更改为有状态,现在它可以完美运行......
答案 2 :(得分:1)
答案 3 :(得分:1)
检查会话状态配置(请参阅下面的示例)。 也许您使用的是另一种模式而不是“InProc”,并且遇到了一些问题。
<sessionState mode="InProc" cookieless="false" timeout="60" />
您还可以考虑使用带有使用SessionID作为前缀的密钥的缓存实例。 企业库提供了良好的缓存实现。
希望这有帮助。
答案 4 :(得分:1)
删除静态变量和静态方法用于响应您的请求。
答案 5 :(得分:1)
在web.config中添加sessionState
:
<configuration>
<system.web>
<sessionState timeout="120" mode=" [InProc|StateServer|SQLServer|Custom]" cookieless="false" />
</system.web>
</configuration>
请尝试以下解决方案:
如@TombMedia's Answer中所述,变量也需要LOCK。
此链接可能会对您有所帮助:Exploring Session in ASP.NET
答案 6 :(得分:0)
这将在Web.config中设置并且&lt;%@ outputcache duration =“1”varybyparam =“none”%&gt;这将删除所有.aspx表单..
此致 RS