2009-05-18 2 views
1

나는 Win2k3의 IIS7에서 ASP.NET 2.0의 최상위에 앉아있는 C# 웹 서비스의 묶음 인 응용 프로그램을 가지고 있습니다. 마지막 릴리즈 이후에 우리는 연결 시간 제한을 계속 유지합니다. Perfmon을 사용하여 신속하게 조사한 결과 응용 프로그램이 연결을 유출하고 있음을 확인했습니다.ASP.NET 2.0 웹 서비스 응용 프로그램에서 누설 연결을 디버깅하는 방법?

그러나 마지막 릴리스에서 코드 변경 사항이 너무 많아 코드 변경 사항을보고 문제가 어디에 있는지를 판별하기가 실제로 어렵습니다.

연결 누수가 실제로 발생하는 곳을 디버깅하는 방법이 있습니까?

+0

문제가 해결되었습니다. SqlCommand.ExecuteReader (CommandBehavior.CloseConnection)가 실제로 연결을 닫지는 않지만 SqlDataReader는 여전히 올바르게 처리되어야합니다. – AngryHacker

+0

문제로 확인 했으므로 using 문을 사용하는 것도 고려해보십시오. using 문은 try-finally 컨트롤 구조로 확장되어 괄호 안에 선언 된 항목이 올바르게 처리되도록합니다. 당신은 이미 그것을 알고 있을지 모르지만, 나는 'using'키워드를 아직 만나지 않은 새로운 개발자들을 위해이 정보를 게시 할 것이라고 생각했습니다. – MedicineMan

+0

그게 내가 한 일이야. 내 코드가 아니었고, 나는 항상 "using"을 사용했다. 그냥 문제 해결이었습니다. 그게 전부입니다. – AngryHacker

답변

1

성능 카운터를 사용하여 메모리 누수를 확인할 수 있습니다. 이 http://msdn.microsoft.com/en-us/library/fxk122b4.aspx

그것은 응용 프로그램이 메모리 누수의 유무 여부를 말할 수있다 :

은이 링크를 참조하십시오? 그러나 그 일을 일으키는 코드는 을 찾을 수 없습니다. 이를 위해서는 응용 프로그램을 디버그해야합니다.