Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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
使ASP.NET/IIS不缓存PDF文件的正确方法_Asp.net_Iis_Caching_Iis 6_Browser Cache - Fatal编程技术网

使ASP.NET/IIS不缓存PDF文件的正确方法

使ASP.NET/IIS不缓存PDF文件的正确方法,asp.net,iis,caching,iis-6,browser-cache,Asp.net,Iis,Caching,Iis 6,Browser Cache,我有下面的场景,我想知道处理这个问题的最佳方法是什么。我的web应用程序(ASP.NET 2.0/IIS 6)生成PDF文件,我有一个结果页面,其中包含指向这些PDF文件的链接 现在,我注意到,如果我访问结果页面,单击一个PDF文件(它会在一个新窗口中打开),然后重新生成PDF文件,然后单击结果页面中的同一链接,将显示旧的PDF,而不是新的PDF。我不得不删除临时互联网文件,以便查看新文件 因此,由于我提供的不是一个实际编写PDF的ASPX(我也不希望保存对话框显示),而是直接链接到PDF文件,

我有下面的场景,我想知道处理这个问题的最佳方法是什么。我的web应用程序(ASP.NET 2.0/IIS 6)生成PDF文件,我有一个结果页面,其中包含指向这些PDF文件的链接

现在,我注意到,如果我访问结果页面,单击一个PDF文件(它会在一个新窗口中打开),然后重新生成PDF文件,然后单击结果页面中的同一链接,将显示旧的PDF,而不是新的PDF。我不得不删除临时互联网文件,以便查看新文件

因此,由于我提供的不是一个实际编写PDF的ASPX(我也不希望保存对话框显示),而是直接链接到PDF文件,因此我想知道确保用户始终在服务器中看到最新文件而不是缓存版本的最佳方法

我猜不可能添加任何缓存头。但是PDF请求仍然会通过HTTP处理程序,所以我想知道是否应该创建一个特定的HTTP处理程序来拦截PDF请求,或者是否应该在IIS级别执行此操作……但是我不一定要避免缓存该站点上的所有PDF


有什么建议吗?提前感谢您的帮助。

如果您的pdf文档链接附加了唯一的查询字符串,我相信这会阻止缓存。以滴答为单位的时间是一个很好的使用方法,例如:

string.Format("{0}?t={1}", pdfFileUrl, DateTime.Now.Ticks);

清除临时internet文件为您提供了新版本这一事实表明浏览器是缓存的来源。您可以关闭iis缓存,但这不会停止代理缓存文档。如果需要100%确保用户看到最新版本,我建议使用查询字符串值使url不同。查询字符串可能是pdf生成时间戳。

我刚刚遇到了类似的问题。我有我的网页允许用户输入数据和生成新的pdf文件保存点击。新的pdf文件覆盖了旧的pdf文件。在IE8中,当用户在保存后单击pdf链接时,将始终显示旧的pdf(用户需要清除缓存以显示新的)。
经过数小时的搜索,我发现在IIS6中,转到“输出缓存”,添加一个文件扩展名为“.aspx”的新缓存规则,勾选“用户模式缓存”和“内核模式缓存”,然后在这两个选项下选择“阻止所有缓存”。这对我有用

这是Adobe Acrobat Reader和Internet Explorer的一个众所周知的问题。即使你添加了标题,IE插件仍然会缓存它。我不知道这是一个已知的问题,Michiel,谢谢你让我知道。由于您似乎已经熟悉该问题,您是否有详细说明/确认该问题的文章的链接?可能对有类似问题的人有用,因为问题中的链接是可用的。我用一个aspx页面解决了这个问题,它提供了我的PDF文件Hey Neil,不起作用。显然,添加随机查询字符串对ASP/ASPX文件有效,但对PDF文件无效。我收到400个错误的请求响应。还有其他想法吗?我敢肯定它对任何事情都有效。在本例中,他们将它与css和javascript一起使用——一种类似pdf文件的静态资源。生成的PDF文件是否存在于磁盘上,或者是否使用处理程序提供?它们存在于磁盘上。让我看看你建议的那篇文章,我还会在一个简单的IIS站点上做一个PoC,请求一个简单的PDF,看看它是否可以这样工作。我的错。这给我一个错误的请求IIS错误的原因是文件名中有一个符号。有一次我尝试使用不同的文件名,效果很好。