不确定我是否真的在正确的论坛上,但如果没有,请告诉我。我有一个用ASP(不是.net)编码的页面,用于发送电子邮件。我们目前遇到的问题是页面似乎有时会被发送两次。检查后,我们发现有问题的人来自大型组织,因此有人建议他们的服务器可能会出于某种原因缓存该文件。
我想知道,HTML(或ASP)中是否有一种方法可以防止这种情况发生?或者在IIS中我们必须设置它吗?
编辑:我忘了提到的是,有时,两封邮件之间的时间可以是几个小时,而不仅仅是几秒钟谢谢,
答案 0 :(得分:1)
我在这里看不到任何缓存问题。
我看到的唯一解决方案是将服务器端(db,文件系统)存储在已发送的电子邮件列表中,并在发送之前检查列表。
使用这种方法,您将确保只发送一封邮件到指定的地址,避免双重提交或其他可能的问题。
答案 1 :(得分:0)
我不知道这与缓存有什么关系。毕竟,缓存页面包含生成的html,因此它不会触发另一个执行发送电子邮件的代码。
然而,我最好的猜测是它与刷新页面的用户有关。为避免这种情况,您可以实现发布/重定向模式,在发送邮件后,您可以重定向到另一个页面(或相同的页面,但具有不同的表单参数)。这样,用户可以按照他/她想要的次数刷新页面,而不会触发另一封电子邮件。
答案 2 :(得分:0)
如果您的问题是缓存,那么您无法阻止组织缓存它。
您可以尝试添加此代码以查看它是否有所作为:
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
如果这不起作用,您可能需要联系该组织的IT部门,并要求他们为您的网页/网站添加缓存例外。