2012-08-09 61 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)。

相關問題