【问题标题】:ASP.NET Data getting mixed up between 2 different usersASP.NET 数据在 2 个不同的用户之间混淆
【发布时间】:2022-01-06 16:18:26
【问题描述】:

我使用 ASP.NET 和 C# (.NET 4.7.2) 作为背后的代码创建了一个 Web 表单应用程序。我使用 ADO.NET Entity 作为与 SQL Server 2019 数据库的连接。

我创建了一个带有 2 个文本框的页面。参考编号和代码。当用户在框中输入参考号和代码并单击提交时,数据将存储在数据库中,页面使用details.aspx?ref=xxxxxx&c=xxxxxx 的 URL 参数重定向到详细页面。

然后加载details.aspx 页面。使用页面加载后面的代码部分,我从Request.QueryString 检索 URL 参数。使用查询结果过滤记录集并显示一些文本和图像数据。

我看到的问题是,如果 2 个用户使用不同的数据同时按下提交按钮,他们会得到下一页上返回的彼此数据的混合。如果他们在不同的时间按下它,它就可以正常工作(我们通过同一个人同时按下两台笔记本电脑确认了这一点)。

有没有人可以指点一下,因为我们已经做了很多搜索,目前找不到解决方案。

到目前为止,我们已经尝试过:

  • IIS 缓存 - 阻止用户模式和内核模式下的所有缓存

  • 在每个页面的页面加载部分添加以下内容

     Response.CacheControl = "private";
     Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d);
     Response.Cache.SetCacheability(HttpCacheability.NoCache);
    
  • Cookie 未被使用

我们拥有对 Web 服务器/数据库的完全访问权限

任何帮助将不胜感激

【问题讨论】:

  • 你必须提供代码,这是代码的一部分 - 很难做到这一点,所以你肯定有一些错误,一些“常见”静态变量,一些错误的会话...
  • 您是否使用静态类来保存值(您不能这样做)。你在这里使用 session() 吗?

标签: c# asp.net caching


【解决方案1】:

您好 阅读 Aristos 评论后,我修改了代码并删除了放置全局变量的静态类。一旦我重新编码页面以使用局部变量,所有工作都按预期工作。

感谢您的提示。

我确实遇到过一些表明相同但还没有尝试的帖子。

非常感谢

【讨论】:

    猜你喜欢
    • 2019-07-15
    • 2011-09-27
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 2018-07-18
    • 2018-06-06
    相关资源
    最近更新 更多