2012-08-02 6 views
1

현재로서는 매우 모순 된 문제가 있습니다. 기본적으로, 나는 들어오는 요청에 대해 사용자 에이전트를 스니핑 (sniff) 할 응용 프로그램에서 브라우저 감지 루틴을 가지고 있으며 지원되는 브라우저에서 오는 경우 응용 프로그램을 계속로드합니다. 그러나 지원되지 않는 경우에는 "Notsupported.html"로 리디렉션됩니다.프로덕션 환경에서 브라우저 검색이 일관되게 작동하지 않습니다.

몇 달 전에이 코드를 작성했습니다. 그것은 내 컴퓨터에서 잘 작동했다. 내가 돌렸고 Dev Server에서 잘 작동하고 있습니다. 테스트 서버에서 좋습니다. 아무도 이것으로 n 문제를 보지 못했습니다.

이제 라이브 환경으로 포팅 된 후 사용자가 처음으로 시스템을로드하고 잠시 동안 사용자의 시스템이 유휴 상태 일 때 브라우저가 지원하는 페이지를로드하는 경우가 있습니다. 때로는 유휴 상태로 잠시 앉아있을 필요가 없습니다. 무작위로 발생하지만 컴퓨터가 잠시 동안 유휴 상태에 있거나 기계가 방금 다시 시작된 후에 더 자주 발견됩니다. 그러나 그것이 반드시 일어날 것이라는 보장은 없습니다.

프로덕션에는 다른 환경과 다른 설정이 많이 있지만 제작 시스템에서 브라우저를 감지하지 못하는 이유는 어디에도 없습니다. 문제를 재현하려고하지만 완전히 반복 할 수는 없습니다.

아이디어가 있으십니까?

답변

0

그것은 단지 그들이 결코 무작위로 아무 :

당신은 브라우저를 감지하는 방법에 대한 약간의 정보를 제공하는 작업을 수행하지 않는다는 것이다 무작위로

컴퓨터에 대한 좋은 점을 발생합니다. 어떤 코드를 사용하고 있습니까? 어떤 브라우저를 지원합니까? 어떤 사용자 에이전트가 잘못 리디렉션되고 있습니까?

또한 많은 응용 프로그램이 사용자 에이전트를 변경합니다 (예 : 컴퓨터에있는 .NET 버전을 광고하는 경우). 이로 인해 잘못된 일치가 발생할 수 있습니다.

+0

'HttpRequest.Browser.Majorversion'은 브라우저 감지에 사용하고있는 것이며 서버 쪽입니다. '어떤 사용자 에이전트가 잘못 리디렉션되고 있습니까? '내가 말했듯이, 크롬, 때로는 IE, 모질라, 사파리 가끔 무작위적인 행동입니다. 나는이 문제가 클라이언트 측 또는 특정 사용자 에이전트에 문제가 있다고 생각하지 않는다. 문제는 서버와 관련이 있고 우리가 아직 확인할 수없는 상태와 관련이 있다고 생각한다. – TeaLeave

+0

나는 어떤 브라우저가 아닌 전체 사용자 에이전트 문자열을 의미했습니다. 그것은 일부 (현재 무작위로 보이는 임의의) 사례에서 브라우저를 잘못 감지 한 이유를 알 수 있습니다. – Luc

+0

'user-agent string'이란 무엇을 의미합니까? – TeaLeave

3

사용자 에이전트는 사용자가 수정할 수 있으므로 클라이언트가 사용하는 브라우저를 결정하는 신뢰할만한 방법은 아닙니다. 브라우저가 modernizr과 같은 서비스에 필요한 기능을 지원하는지 여부를 구체적으로 감지하는 것이 더 나은 방법입니다.

+0

글쎄요, 사용 도구가 브라우저를 변경할 수있는 가장 신뢰할만한 방법이 아니며 사용자가 브라우저를 변경할 수 있다는 사실을 인정합니다. 우리는 현재 사용자입니다. 우리 팀은 잠시 그것을 테스트하고 있으며 우리는이 문제를보고 있습니다. 하나의 큰 차이점은 생산 환경이 젊은 밸런서 뒤에 있고 다른 것들은 그렇지 않다는 것입니다. 로드 균형 조정기와 브라우저 검색 오류 사이에 인과 관계를 아직 설정하지 않았습니다. – TeaLeave

0

IE에서는 호환 모드로 연결할 수 있습니다. ie competibility 모드 인 경우 자체에 대한 아주 이상한 정보를 보냅니다.

관련 문제