문제

이 문제는 귀하의 제안 덕분에 해결되었습니다. 자세한 내용은 하단을 참조하십시오. 도와 주셔서 대단히 감사합니다!

ASP.NET 웹 사이트는 여러 구체적이고 안전한 국제 위치에서 액세스 할 수 있습니다. 잘 작동했지만 매우 이상한 행동을 보여주는 다른 클라이언트 위치를 추가했습니다.

특히 사용자가 검색 기준을 입력하고 검색 버튼을 클릭하면 결과 목록이 비어 있습니다. '0 결과가 반환 된'텍스트조차 표시하지 않으므로 리피터 제어가 전혀 바인딩되지 않은 것처럼 보입니다. 사이트의 다른 부분에서는 비슷한 동작이 나타나지 않습니다. 사용자는 사이트에서 정밀하게 로그인 할 수 있으며 프로필 정보가 표시됩니다.

나는 그것들과 정확히 동일한 자격 증명을 사용하여 로컬로 사이트에 로그인했으며 사이트가 여기에서 잘 작동합니다. 우리는 신중하게 단계를 거쳤으므로 그것이 사용자 문제가 아니라고 확신합니다.

검색 결과를 처음으로로드 할 때 검색 결과를 페이지_LOAD에서 바인딩합니다 (기준은 쿼리 문자열에 있습니다). 즉

if (!IsPostBack) {
  BindResults();
}

bindresults () 메소드 호출을 댓글을 달아서 동일한 동작을 로컬로 정확히 복제 할 수 있습니다.

iSpostback의 값이 어떻게 계산되는지 아는 사람이 있습니까? 보안 보안 방화벽 설정이 다른 페이지에서 리디렉션 될 때에도 ISPOSTBACK가 항상 진실을 반환 할 수 있습니까? 문제가 다른 곳에있을 수 있으므로 빨간 청어 일 수 있습니다. 그래도 결과를 정확하게 복제합니다.

사이트에 대한 액세스 권한이 없으므로 문제 해결은 지침을 제공하고 결과를 알려달라고 요청하는 것으로 제한됩니다.

시간 내 줘서 고마워!

추가 정보 : 클라이언트는 기본 규칙을 실행하는 Microsoft ISA 2006 방화벽 뒤에 있습니다. 이 사이트는 Internet Explorer Trusted 사이트 목록에 추가되었으며 Firefox 및 Google Chrome에서 모두 동일한 결과를 얻었습니다.

해결책: 저의 승자는 피들러를 사용하는 제안이었습니다. 웹 개발자가 없어야 할 우수한 도구. 이것을 사용하여 문제를 재현 할 때까지 요청에서 다양한 헤더를 제거 할 수있었습니다. 실제로 혼란스러운 문제의 경우와 마찬가지로이 버그를 일으킨 두 가지 요소가있었습니다.

요소 1 - 가능한 경우 웹 애플리케이션은 모든 주요 브라우저에서 지원하는 GZIP 압축을 사용합니다. 방화벽은 GZIP 감압 지지대 (허용 인코딩 : GZIP, deflate)를 지정하는 헤더를 제거했습니다.

요소 2 - 내 코드의 버그는 콘텐츠가 압축되지 않으면 일부 처리가 우회되었음을 의미했습니다. 이 문제는 제한된 청중이 응용 프로그램을 사용하기 때문에 이전에는 눈치 채지 못했습니다.

도움이 되었습니까?

해결책

그들이 기술에 정통한 경우, 나는 그들이 Fiddler 또는 유사한 것을 다운로드하고 전체 HTTP 세션을 캡처 한 다음 저장된 세션을 보내도록합니다. 어쩌면 거기에 무언가가 튀어 나올 것입니다.

한편, ISA 서버를 설치할 수 있는지 확인하고 (필요한 경우 또는 Sub가있는 사람이 있거나 알고있는 경우 MSDN의 평가 설치 설치)를 확인하고 로컬로 복제 할 수 있는지 확인하십시오.

다른 팁

클라이언트가 JavaScript를 비활성화했을 가능성이 있습니까? _EventTarget 양식 값을 선택하지 않습니까?

주어진 사후 요청에서 GET 요청을 생성하는 일종의 프록시 일 수 있습니다 ...

Ispostback이 어떻게 계산되는지 잘 모르겠지만, HTTP 요청이 게시물인지 또는 얻는 지 확인하는 것입니다 ...

오 예. 확실히 "_eventTarget"btw가 아닙니다 ...

나는 이것을 알고 있습니다 Ra-Ajax 해당 매개 변수를 서버로 전달하지 않으며 (RA-Ajax 요청)는 ISPOSTBACK 요청으로 처리됩니다 ...

위치, 위치, 위치. 사용자의 문화를 확인하십시오. 일반적으로 문제가 발생합니다.

검색 페이지와 동일한 것들을 전달하는 테스트 게시물 페이지를 만들 수 있고 Page_Load에 모든 게시물을 다시 작성하여 전달되는지 확인하십시오.

foreach (string key in Request.Form)
{
    Response.Write("<br>" + key + "=" + Request.Form[key]);
}

그런 다음 사용자 중 한 명에게 해당 테스트 페이지에서 보는 것을 전달하도록 요청하십시오.

편집 : 일부 방화벽이 ViewState를 손상시킬 수 있다는 문서와이를 해결하는 몇 가지 방법이 있습니다. 상태 개요를 봅니다

IIS 로그를 확인하여 요청이 서버에 도입하는지 확인하십시오. ISA 설정은 초기 요청을 캐싱하고 후속 요청에서이를 제공 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top