Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 禁用特定页面上的页面缓存_Html_Iis_Caching_Asp Classic - Fatal编程技术网

Html 禁用特定页面上的页面缓存

Html 禁用特定页面上的页面缓存,html,iis,caching,asp-classic,Html,Iis,Caching,Asp Classic,不确定我是否真的在正确的论坛上,但如果不是,请告诉我。我有一个用ASP(而不是.net)编码的网页,用来发送电子邮件。我们目前遇到一个问题,页面似乎在某个时候发送了两次。经过检查,我们发现有此问题的人来自大型组织,因此建议他们的服务器出于某种原因缓存文件 我想知道,HTML(或ASP)中有没有一种方法可以防止这种情况发生?还是在IIS中我们必须设置这个 编辑:我忘了提到的是,有时,两封邮件之间的时间可以是小时,而不仅仅是秒 谢谢,我看这里没有缓存问题 我看到的唯一解决方案是将发送的电子邮件列表存

不确定我是否真的在正确的论坛上,但如果不是,请告诉我。我有一个用ASP(而不是.net)编码的网页,用来发送电子邮件。我们目前遇到一个问题,页面似乎在某个时候发送了两次。经过检查,我们发现有此问题的人来自大型组织,因此建议他们的服务器出于某种原因缓存文件

我想知道,HTML(或ASP)中有没有一种方法可以防止这种情况发生?还是在IIS中我们必须设置这个

编辑:我忘了提到的是,有时,两封邮件之间的时间可以是小时,而不仅仅是秒


谢谢,

我看这里没有缓存问题

我看到的唯一解决方案是将发送的电子邮件列表存储在服务器端(数据库、文件系统)的某个位置,并在发送之前检查列表


使用这种方法,您将确保只向指定的地址发送一封邮件,避免重复提交或其他可能的问题。

我不认为这与缓存有什么关系。毕竟,缓存页面包含生成的html,因此不会触发发送电子邮件的代码的另一次执行


然而,我最好的猜测是,这与刷新页面的用户有关。为了避免这种情况,您可以实现post/redirect模式,在发送邮件后,您可以重定向到另一个页面(或者相同的页面,但具有不同的表单参数)。这样,用户可以根据自己的需要多次刷新页面,而不会触发另一封发送的电子邮件。

如果您的问题是缓存,那么您真的无法阻止组织对其进行缓存

您可以尝试添加此代码,以查看它是否有所不同:

Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache" 

如果这不起作用,您可能需要联系该组织的IT部门,并要求他们为您的页面/站点添加缓存异常。

我们已经检查了这一可能性,似乎实际上无法刷新页面,因为调用页面时,页面会运行并重定向到另一个页面。我尝试刷新另一个页面,查看电子邮件是否发送了两次,但没有。我忘了提到的一件事是,有时,两封邮件之间的时间可以是小时,而不仅仅是秒。我将编辑我的帖子。我们签出了客户,他们都没有刷新页面或双击按钮。我知道我们通常不能依赖人们的这种输入,但他们中的一些人是超级用户,所以我觉得这是可靠的。而且这只发生在某个地方,不是全部。不知道,不是我干的。我想这可能是个好主意。如果我们不能“正常”解决问题,我们将重写整个过程并添加验证。如果我们不得不这么做的话,那就更像是皮塔了。否决票是怎么回事?至少,当你否决一个合法的答案时,有礼貌地留下评论。我同意。。事情大部分时间都是这样的,最多两分钟就到了,这是可以解释的,但几个小时我不能解释。