2009-12-09 5 views
1

기존 프로젝트를 상속하고 있으며 웹 서비스 호출을 만드는 메서드를 호출하는 페이지가 있습니다. 로드 및 성능 테스트에서이 페이지를 닫는 데 시간이 오래 걸리는 경우가 있지만 대개 괜찮습니다. 매달린 것이 있으면 첫 번째 페이지가 해결 될 때까지 해당 페이지에 대한 다른 모든 요청이 중단 된 다음 모두 해결됩니다.처리되지 않은 웹 서비스 호출 (ASP.NET)

웹 서비스가 인스턴스화되고 처리되지 않는 것과 관련이 있을지 모르지만 어떻게 확신 할 수 있는지 알 수 없습니다. Dispose 메서드에 대리자를 추가하려고 시도했지만 실행되지 않습니다. (Dispose가 명시 적으로 호출되지 않는다고 확신 할 수는 없지만 실제로는 문제가되지 않습니다.)

프로덕션 서버 또는 배포 된 환경에서 이러한 요청이 쌓여서 나가는 것을 볼 수있는 대상은 무엇입니까? (또는 문제가 아닌 경우 정돈 된 방식으로 처리하십시오)?

+0

개발 단계에서 코드 분석 도구를 실행하여이 안티 패턴을 감지해야합니다 (적절한 경우 처 리하지 않음). FxCop은이 시나리오에서 도움이 될 수 있습니다. –

답변

-1

웹 앱 코드에서 요청을 보내기 바로 전에 로그 (이벤트 로그, 텍스트 파일)에 쓸 수 있으며 응답을받은 직후 다시 사용할 수 있습니다. 요청에 대한 식별 정보를 포함하십시오. 타임 스탬프를 추가하십시오.

디버깅 중에 만 이것을 사용하려면 #debug로 감싸 십시 오.

또는 릴리스 모드에서 테스트하려는 경우 web.config의 appSettings에 부울을 넣을 수 있으므로 로깅을 켜고 끌 수 있습니다.

+0

나는 응답을 요구하고 그것을 얻는 것 사이의 시간에 대단히 걱정하지 않는다. 나는 응답을 얻은 후에 무슨 일이 일어날 지에 대해 더 염려한다. 나는 연결이 끊어지고 제한된 수의 아웃 바운드 연결 중 하나를 무기한 사용하지 않는다고 가정하고있다. .NET이 실제로 이러한 호출로 무엇을하는지 알아내는 것이 문제입니다. – dnord

+0

이것이 도움이 될지도 모른다고 생각했습니다. 이러한 요청이 겹쳐서 나가는 것을 보거나 (또는 ​​규칙적인 방식으로 처리됩니다.) – DOK

1

.NET 메모리 프로파일 러와 같은 도구 사용을 고려해보십시오. 이 도구를 사용하여 실행중인 응용 프로그램에 연결할 수 있으며 모든 배치되지 않은 개체를 찾아보고 할 수 있습니다.

무료 2 주 시험이 있다고 생각합니다.

+0

열린 웹 서비스 호출을 구체적으로 확인하는 방법을 찾지 못했습니다.하지만 이런 종류의 개체가 열린 상태로 남겨 두었습니다. 명시 적으로 닫을 때 많이 달라 보이지는 않았지만 .NET Memory Profiler는 초보자를위한 것이 아닙니다. – dnord