2014-12-17 1 views
0

이렇게 이상합니다.'</ div'가 기본 ASP html 응답에 삽입되어 페이지가 계속로드됩니다.

우리는 클래식 ASP을 실행하는 2008 R2 serverWin 7x64 dev 워크 스테이션을 가지고있다.

사이트에서 한 페이지가 정확히 carat position 98301 일 때 </div이 소스에 삽입되고 있습니다. 이 아니고은 완전히 닫는 div (</div>) 태그입니다. 그냥 </div.

따라서 페이지를 수정하는 다른 작업 (사용자 권한, 쿼리 문자열 값 등)을 기반으로 모든 종류의 작업이 중단되고 있습니다. 항상 코드에서 정확히 position 98301입니다. 그리고 항상이 한 페이지에서만.

나는 전에 이것을 보지 못했으며 무엇을하고 있는지 알 수 없었습니다. 우리는 수십만의 문자를 가진 많은 다른 페이지들을 가지고 있습니다. 짧은 페이지도 있습니다. 모든 IIS 설정은 모든 페이지에서 동일하며 4Mb response buffer 및 모두 static and dynamic compression이 포함됩니다 (변경없이 양방향으로 전환 됨). 우리는 또한 3 source control branches을 가지고 있으며,이 모든 것들이이 페이지에서만 발생합니다.

우리는 2 Win7x64 dev workstations, 1 Win2008R2 local test server 및 1 Win2008R2 prod server을 사용하고 있으며 이들은 모두 똑같은 것을합니다.

나는 코드를 옮겨서 함수를 잘라내어 루프 Hello World에 새로운 코드를 추가했다. 그리고 내가하는 일에도 항상 carat position 98301에 그냥 </div을 삽입했다.

나는 테스트 할 다른 것을 생각할 수 없다. 모든 제안은 환영합니다! 고맙습니다!

+0

** 업데이트 : ** 포함 파일을 더 많이 다루고 필수가 아닌 코드를 제거하면 '는 이제'위치 98301 '에서'위치 80000 '과'위치 115000 '사이의 다른 위치로 이동 중입니다. '. 나는 정규식에서 결과가 0 인']'에 대한 해결책을 찾았습니다. 아직도 붙어있어. – jbwebtech

답변

0

htmlEncode()htmlDecode()이 페이지에 존재하며 Chrome (현재 v39.x)에서만 문제가 있음을 알 수 있습니다. Firefox와 IE는 잘 작동했습니다. 우리 페이지에는 약 600 행의 스크립트 블록이 있었고 htmlEncode()htmlDecode()은 블록의 맨 위에있었습니다. </script> 태그 바로 앞으로 이동하여 모든 것이 작동하고 </div이 주입되지 않았습니다. 우리는 모두 프로토 타입 (1.7.1)와 jQuery를 (1.11.x)가로드되어, 또한 HTML-encoding lost when attribute read from input field

, 그리고 jQuery를 : 그 페이지의 저자 아니었지만, 나는 htmlEncode()htmlDecode() 기능은 여기에서 공급되었다 볼 수 있습니다 프로토 타입 전에 var $j = jQuery.noConflict();으로로드 중입니다. return $('<div/>')....에서 return $j('<div/>').... 그리고 심지어 return jQuery('<div/>')....을 변경해도 상황에 전혀 영향을 미치지 않았습니다.

아직도이 문제가 발생했는지 알 수 없지만 기능을 스크립트 태그의 맨 아래로 이동하여 해결되었습니다 (현재는 어쨌든).

관련 문제