从IE打开的Excel文件不存在,但确实存在

时间:2013-07-17 21:37:13

标签: javascript excel internet-explorer

我有一个用户,当他们下载我们的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();
}

1 个答案:

答案 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有更多信息。