我正在寻找一个我没写过的现有网络表单应用程序。它在IE8和FF中按预期工作,但在IE9中失败:
“Internet Explorer无法显示网页”
代码是一个简单的处理程序,它正在执行context.Response.Redirect。
使用Fiddler,我可以看到302响应,所以一切都很好。
任何想法为什么IE9表现不同,或者我可以做些什么来修复?
由于代码请求而编辑:
当然,这是一行: context.Response.Redirect(“file:”& Filename.Replace(“/”,“\”))
Fiddler表示:
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>
答案 0 :(得分:0)
我只想确认,但你的磁盘上是否有 J:\ Replay \ Meetings \ Meetings-2012.pdf 文件? file:// 协议仅用于访问本地文件。我想这没关系,因为你写的它在其他浏览器中按预期工作。
如果是这样,我已经读过这种错误可能是由文件的无效网址引起的。 尝试像这样重定向:
context.Response.Redirect("file://" & Filename);
如果有帮助,请告诉我。
答案 1 :(得分:0)
这可能是区域提升问题。具体来说,IE会尝试阻止一个安全区域中的站点升级到另一个安全区域。从本地计算机外部重定向到本地计算机被认为是危险的。
可能的修复(我不确定这些是否可以在IE9中使用):
1.将触发这些重定向的站点添加到“受信任”区域
2.更改安全设置。请注意“较少特权的Web内容区域中的网站可以导航到此区域”设置(Internet选项 - &gt; Internet区域 - &gt;自定义级别)。您需要将其设置为“我的计算机区域”的“启用”或“提示”。我怀疑这可以通过将“我的电脑区域”添加到您的区域列表(http://support.microsoft.com/kb/315933)或直接编辑“我的电脑区域”(通过注册表)来完成。您可能还需要添加HKCU \ Software \ Microsoft \ Internet
Explorer \ Main \ Disable_Local_Machine_Navigate键(设置为0 REG_DWORD)。