2012-08-09 4 views
1

필자는 작성하지 않은 기존 웹 양식 앱에 신경을 쓰고 있습니다. 함께 IE9에서 IE8과 FF에서 예상대로 작동하지만, 실패 할 것 :IE9가 리디렉션에 실패 할 수있는 원인은 무엇입니까?

코드는 context.Response.Redirect을하고있어 간단한 핸들러 "Internet Explorer에서 웹 페이지를 표시 할 수 없습니다". 피들러를 사용

, 내가 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

+0

대상 URL을 직접 방문하는 경우 작동합니까? – Brian

+0

@Brian - 예, 잘 작동합니다. –

답변

0

내가 확인 만 부탁 해요,하지만 당신은 J합니까 : 피들러 보여줍니다 \ 재생 디스크에 파일을 로컬 회의-2012.pdf \ 회의 \? 파일 : // 프로토콜은 로컬 파일에 액세스하는 데에만 사용됩니다. 당신이 쓴 것처럼 다른 브라우저에서 예상대로 작동합니다.

그렇다면은, 나는 이런 종류의 오류는 파일에 대한 잘못된 URL에 의해 발생 될 수 있음을 읽었습니다. 다음과 같이 재 시도 :

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

이 도움이되는지 알려주세요.

+0

그래, 필자는 file : //을 사용하지 않았지만 다른 브라우저에서도 작동한다는 것을 알았습니다. 나는 그것을 한 번 줄 것이고 당신에게 알려줄 것이다. 감사. –

+0

필자는 왜이 코드가 * file : // * 프로토콜을 사용하는지 궁금합니다. 이것이 네트워크 공유입니까? ** 간단한 테스트를 수행하십시오. ** http : // 프로토콜로 시작하여 네트워크에서 사용할 수있는 일부 파일 (또는 이미지)의 URL로 변경하십시오. IE9를 포함한 모든 브라우저에서 올바르게 작동하는 경우 IIS에서 가상 디렉터리를 만들고 디스크의 파일에 대한 실제 경로 대신 사용하십시오.그것이 효과가 있고 더 많은 정보가 필요하면 알려주십시오. –

+0

예, 네트워크 공유입니다. 나는 주위에 물어 봤고 큰 파일 (비디오 등)이 될 수 있고 각 위치마다 자체 J 드라이브가 있기 때문에이 방법으로 설계되었습니다. 따라서 누군가는 수십 마일 떨어진 곳에서 많은 양의 데이터를 가져 오지 않을 것입니다. –

0

이것은 영역 권한 상승 문제 일 수 있습니다. 특히 IE는 한 보안 영역의 사이트가 다른 보안 영역으로 넘어 가지 않도록합니다. 로컬 컴퓨터 외부에서 로컬 컴퓨터로 리디렉션하는 것은 위험한 것으로 간주됩니다.

가능한 수정 사항 (IE9에서 작동하는지 확신 할 수 없음) :
1. 이러한 리디렉션을 트리거하는 사이트를 신뢰할 수있는 영역에 추가하십시오.
2. 보안 설정을 변경하십시오. "권한이 적은 웹 컨텐트 영역의 웹 사이트가이 영역으로 이동할 수 있음"설정 (인터넷 옵션 -> 인터넷 영역 -> 사용자 지정 수준)에 유의하십시오. "내 컴퓨터 영역"에 대해 "사용"또는 "프롬프트"로 설정해야합니다. 내 영역 목록 (http://support.microsoft.com/kb/315933)에 "내 컴퓨터 영역"을 추가하거나 레지스트리를 통해 직접 "내 컴퓨터 영역"을 편집하여이 작업을 수행 할 수 있습니다. 또한 HKCU \ Software \ Microsoft \ Internet Explorer \ Main \ Disable_Local_Machine_Navigate 키 (REG_DWORD가 0으로 설정 됨)를 추가해야 할 수도 있습니다.

관련 문제