브라우저 버전을 클라이언트 측에서 검색하려고하면 약간 혼란 스럽습니다. 두 가지 방법을 사용하여이를 검사하고 테스트 목적으로 결과를 비교합니다. I 로컬 dev에 기계와 IE 10 웹 브라우저에서보기보다 VS2012 개발 서버에 내장 된 사용하십시오클라이언트 측 브라우저 버전 ASP.NET withouth 호환성보기 사용 가능
HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"];
System.Web.HttpBrowserCapabilities browser = HttpContext.Current.Request.Browser; string version = browser.Version;
이 결과는 (클라이언트 결과에 대한 진실이 무엇인지) :
- 브라우저는 다음과 같습니다 IE 10.0
- 모질라/5.0 (호환; MSIE 10.0; 윈도우 NT 6.1; W OW64; 트라이던트/6.0)
내가 프로덕션 서버 (업로드 7.5 윈도우 2008 R2)와 같은 클라이언트의 웹 브라우저에서 열려 (IE 10) 또는 IE 9 다른 클라이언트를 사용하여, 8 브라우저가 결과는 다음과 같다 IIS (무슨 일이 각 클라이언트가 다른 브라우저가 사실이 아니다) :
- 7.0
- 모질라/4.0 (호환; MSIE 7.0; 윈도우 NT 6.1; WOW64; 삼지창/6.0 SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729, .NET CLR 3.0.30729, Media Center PC 6.0, .NET 4.0C, InfoPath.3, .NET4.0E)
위의 코드를 C#에서 사용하면 클라이언트 측 브라우저 버전이 서버가 아닌 것으로 가정 할 수 있습니다.
BTW, 프로덕션 서버를 탐색 할 때 호환성보기가 활성화되어 있는지 확인해 보았습니까? (와이어트의 답변과 유사하지만 잠재적으로 다른 해결책, 즉 호환성보기 사용 안 함). –
@TimMedora - 네 말이 맞아. IE 8,9,10처럼 기본적으로 인트라넷에 대한 호환성보기가 활성화되어있어 사용자 에이전트가 각 사용자에 대해 IE 7.0을 표시하도록합니다. 나는 체크 박스를 비활성화하고 매력처럼 일했습니다. 기본적으로 인터넷 사이트에 대한 설정은 비활성화되어 있으므로 아무런 문제가 없습니다. 당신의 의견에 감사드립니다. – laspalmos