2012-08-09 45 views
1

我很喜欢现有的网页表单应用程序,我没有写。它的工作如预期在IE8和FF,但未能在IE9有:什么会导致IE9在重定向时失败?

“Internet Explorer无法显示该网页”

的代码是一个简单的处理程序,在做一个context.Response.Redirect。

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

任何想法为什么IE9行为不同,或者我能做些什么来解决?

编辑因请求代码:

好的,这是该行: context.Response.Redirect( “文件:” & 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> 
+0

我们可以看到代码以及来自Fiddler的输出吗?他们可能会提供相关信息。 – vcsjones 2012-08-09 18:33:39

+0

如果您直接访问目标网址,它是否有效? – Brian 2012-08-09 18:34:40

+0

@布莱恩 - 是的,工作正常。 – 2012-08-09 19:05:58

回答

0

我要求,以确保公正,但你有j:\回放\磁盘上的会议\会议-2012.pdf文件在本地? 文件://协议仅用于访问本地文件。我想这没关系,正如你所写的,它在其他浏览器中按预期工作。

如果是这样,我读过这种错误可能是由无效的网址导致的文件。 尝试这样的重定向:

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

让我知道,如果这有助于。

+0

是的,我注意到作者没有使用file://,但它在其他浏览器中工作。我会给它一个镜头,让你知道。谢谢。 – 2012-08-09 20:10:28

+0

我不知道为什么这个代码使用* file:// *协议。这是网络共享吗? **做一个简单的测试:**将其更改为网络上可用的某个文件(或图像)的URL,从http://协议开始。如果这可以在所有浏览器(包括IE9)上正常工作,请在IIS上创建一个虚拟目录,并将其用于磁盘上的文件而不是物理路径。如果它适合你,并且你需要更多关于这方面的信息,请告诉我。 – 2012-08-09 20:29:34

+0

是的,这是一个网络共享。我问周围,这是因为这些可能是大文件(视频等),每个位置都有自己的J驱动器。所以有人不会从数百英里远的地方抽取大量数据。 – 2012-08-09 21:07:11

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

相关问题