【问题标题】:Weird Behaviour of Public Shared Variable in Vb.netVb.net 中公共共享变量的奇怪行为
【发布时间】:2015-10-14 12:04:27
【问题描述】:

我有一个用 vb.net 编写的 Web 应用程序,我在其中使用公共共享变量将每个帖子上的变量值持久保存回服务器。我注意到我的应用程序中有一个奇怪的情况。让我通过以下示例进行解释:

  Public Shared totalScore as integer
  Private Sub CalculateTotal()
    method body..........
  totalScore = 45 (assuming the student gets 45)
  'totalScore value is stored in the database'
  after the processing i set totalScore back to 0
  end Sub

这就是将 totalScore 设置为 0 后的问题所在。我注意到对于 Web 应用程序的第一个用户来说一切都很好,但对于运行此子例程的后续用户来说,totalScore 始终为 0。

不管他们的分数是多少。请向我解释公共共享变量及其对应用程序的影响。

已尝试在 Microsoft 无组织的圣经网站上阅读它,但我可以理解他们想说的话。非常需要说明或在回发之间保留数据的最佳方式是什么。

【问题讨论】:

  • 如果变量应该是每个用户的,你应该看看sessions而不是公共共享。
  • 谢谢@HansPassant 你能把你的评论变成一个答案,这样我就可以选择它作为正确的答案。您的评论提供了我需要的洞察力。

标签: vb.net shared


【解决方案1】:

每次您在浏览器中执行操作并且您的代码加载到服务器上时,都会重新创建您的变量。在每次访问 Web 服务器之间,应该有最少的状态保存在其他服务器中以提供可伸缩性。

如果您需要保持状态,则需要确定它是会话(仅适用于一个用户)还是应用程序。查看这篇文章以获取有关如何操作的详细信息:http://www.c-sharpcorner.com/UploadFile/78d182/Asp-Net-state-management-techniques/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2014-06-11
    • 2021-03-05
    • 2013-04-01
    • 2010-11-07
    相关资源
    最近更新 更多