我有一个用户,当他们下载我们的Intranet上托管的excel文件时,会收到一条错误消息,告诉他们该文件不存在。这在IE中发生。
我已经验证该文件确实存在,并且在同一地理位置具有相同权限的其他用户可以访问该文件。这不是互操作问题 - 文件只是托管。通过在打开/保存提示符下打开文件,我能够在IE 9中的机器上重现一次该问题,之后Excel向我询问了3次身份验证凭据,给了我相同的错误,然后打开了文件。从那以后我一直无法重现它。她的电脑无论如何都会“打开文件。”
我很难过。有没有人有任何想法?
错误讯息: Microsoft Office Excel无法访问该文件。有 几个可能的原因:
修改
用户正在使用IE 7。
为文件提供服务的代码:
<asp:LinkButton ID="lbtnEstimatingWorkbook" runat="server" CssClass="Brightness"
Tooltip="Estimate Calculation Workbook" ToolTip="Open estimating workbook in Excel"
OnClientClick="DisplayEstimateWorkbook()"></asp:LinkButton>
function DisplayEstimateWorkbook() {
var url = "Estimating Workbook.xlsm";
var win = window.open(url, '_blank');
win.focus();
}
答案 0 :(得分:0)
在我们的生产路径(可能是通用的IIS设置)中找到了一些东西,但在应用程序之外,添加了“Pragma:no-cache”标头。由于IE处理下载的可怕方式,这阻止了IE8(或更早版本)下载任何内容。
将以下内容添加到页面的Init方法中修复了问题并允许下载(仅适用于IIS 7 +):
Response.Headers.Remove("Pragma")
Response.AddHeader("Pragma", "cache")
Response.Cache.SetCacheability(HttpCacheability.Private)
Response.Cache.SetMaxAge(New TimeSpan(0, 15, 0))
This question有更多信息。