【发布时间】: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() 吗?