2012-11-03 6 views
1

3 계층 응용 프로그램에 문제가 있습니다. IIS와 SQL Server를 사용합니다. 그리고 문제는 클라이언트가 IIS로부터 응답을받지 않는 경우가 더 길다는 것입니다. SQL Server에서 아무런 활동이 없을 때 멈추고 심지어 SQL 프로세스를 종료 할 때도 예외가 발생해도 응답이 없습니다. 이러한 정지 후 데이터를 검사 할 때 SQL 요청이 성공한 것으로 확인되어 IIS에 문제가있는 것 같습니다. Unfotunately 나는 응용 프로그램이 호스팅되는 곳을 많이 제어하지 못하고 문제를 재현 할 수 없습니다. 이 질문에 대한 여러 가지 대답이있을 수 있지만 적어도 조사해야하는 방향에 대한 힌트가 필요합니다.
업데이트 : 작은 작업을 수행하는 동일한 서버에서 실행되는 앱도 있습니다. 데이터베이스에 100 줄 정도의 행을 삽입합니다. 인위적으로 나는 약 10 분 동안 (xlock을 테이블에 놓음으로써) 작동하게했다. xlock을 제거한 후 IIS의 프로세스가 계속 실행되고 100 줄을 성공적으로 삽입했습니다. 그러나 컨트롤은 클라이언트에 반환 된 적이 없으며 무기한으로 기다렸습니다. 장기 실행 프로세스 후에 클라이언트에 응답을 반환 할 때 문제가되는 것 같습니다.
BTW, 이것은 웹 사이트가 아니라 Remoting을 사용하는 WinForms 앱입니다.IIS 가끔씩 응답이 없습니다.

답변

1

나는 마침내 문제가 어디인지 알아 냈습니다. 응용 프로그램은 웹 팜에서 실행되며 클라이언트와 IIS 사이에 밸런서 서버가 있습니다. 밸런서에 너무 작은 시간 초과가있었습니다. 어떤 이유로 그것은 .net remoting에 매우 친숙하지 않으며 클라이언트에게 시간 제한 예외를 반환하지 않습니다. 문제는 시간 초과를 늘림으로써 해결되었습니다.

1

SQL Server가 IIS로 돌아 오는 것이 확실한 경우 IIS logs을 확인하여 요청이 어떤 내용인지 확인할 수 있습니다. 이러한 로그의 일반적인 위치는 %SystemRoot%\system32\Logfiles\<service_name>입니다.

SQL Server에 대해 잘 모르는 경우 SQL 로그에 액세스하거나 프로필러를 실행하거나 Windows 시스템 로그에서 오류를 확인하거나 Visual Studio에서 디버그로 사이트를 실행하거나 자신의 로깅을 앱에 추가 할 수 있습니다. 어느 단계에 매달려 있는지 파악하십시오.

+0

IIS 로그가 정상입니다. 전송 수준 문제 인 것 같습니다. – XanderMK

관련 문제