1

私が書いていない既存の Web フォーム アプリを見ています。IE8 と FF では期待どおりに動作しますが、IE9 では次のように失敗します。

"インターネット・エクスプローラーがウェブページを表示できない"

コードは、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

念のためお聞きしたいのですが、ディスクのローカルにJ:\Replay\Meetings\Meetings-2012.pdfファイルはありますか? file://プロトコルは、ローカル ファイルへのアクセスにのみ使用されます。あなたが書いたように、他のブラウザでは期待どおりに動作するので、大丈夫だと思います。

もしそうなら、この種のエラーはファイルへの無効な URL によって引き起こされる可能性があることを読みました。次のようにリダイレクトしてみてください。

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

これが役立つかどうか教えてください。

于 2012-08-09T19:16:02.417 に答える
0

これは、ゾーンの標高の問題である可能性があります。具体的には、IE は、あるセキュリティ ゾーン内のサイトが別のセキュリティ ゾーンに昇格するのを防ごうとします。ローカル マシンの外部からローカル マシンにリダイレクトすることは危険と見なされます。

考えられる修正 (これらが IE9 で機能するかどうかはわかりません):
1. これらのリダイレクトをトリガーするサイトを信頼済みゾーンに追加します。
2. セキュリティ設定を変更します。「権限の低い Web コンテンツ ゾーンの Web サイトは、このゾーンに移動できます」設定に注意してください ([インターネット オプション] -> [インターネット ゾーン] -> [カスタム レベル])。「マイ コンピュータ ゾーン」を「有効にする」または「プロンプトを表示する」に設定する必要があります。これは、「マイ コンピュータ ゾーン」をゾーン リスト ( 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 に答える