1

我正在查看一个不是我编写的现有 Web 表单应用程序。它在 IE8 和 FF 中按预期工作,但在 IE9 中失败:

“Internet Explorer无法显示该网页”

该代码是一个执行 context.Response.Redirect 的简单处理程序。

使用 Fiddler,我可以看到 302 响应,所以一切看起来都很好。

任何想法为什么 IE9 的行为不同,或者我可以做些什么来修复?

由于请求代码而编辑:

当然,这是行: context.Response.Redirect("file:" & Filename.Replace("/", "\"))

提琴手显示:

HTTP/1.1 302 Found
Date: Thu, 09 Aug 2012 19:01:24 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Location: file:J:\Replay\Meetings\Meetings-2012.pdf
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 254

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="file:J:\Replay\Meetings\Meetings-2012.pdf">here</a>.</h2>
</body></html>
4

2 回答 2

0

这可能是区域海拔问题。具体来说,IE 试图阻止一个安全区域中的站点将自己提升到另一个安全区域。从本地计算机外部重定向到本地计算机被认为是危险的。

可能的修复(我不确定这些是否适用于 IE9):
1. 将触发这些重定向的站点添加到受信任区域。
2. 更改您的安全设置。请注意“权限较低的 Web 内容区域中的网站可以导航到该区域”设置(Internet 选项 -> Internet 区域 -> 自定义级别)。您需要将“我的电脑区”设置为“启用”或“提示”。我怀疑这可以通过将“我的电脑区”添加到您的区域列表(http://support.microsoft.com/kb/315933)或直接编辑“我的电脑区”(通过注册表)来完成。您可能还需要添加 HKCU\Software\Microsoft\Internet Explorer\Main\Disable_Local_Machine_Navigate 键(设置为 0 REG_DWORD)。

于 2012-08-09T19:53:51.680 回答
0

我只是想确定一下,但是您的磁盘上是否有J:\Replay\Meetings\Meetings-2012.pdf文件?file : //协议仅用于访问本地文件。我想没关系,正如您所写的那样,它在其他浏览器中按预期工作。

如果是这样,我已经读到这种错误可能是由文件的无效 url 引起的。尝试像这样重定向:

context.Response.Redirect("file://" & Filename);

让我知道这是否有帮助。

于 2012-08-09T19:16:02.417 回答