0

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

1 回答 1

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))

这个问题有更多信息。

于 2013-08-13T13:33:09.720 回答