2014-12-05 3 views
12

netTCP를 통해 winform 클라이언트와 통신하는 Windows 서비스에서 호스팅되는 WCF 서비스가 있습니다.웹 서비스 작업의 성능 카운터

WCF 서비스는 IIS에서 오래 전에 호스팅되었으며이 시점에서 성능 카운터 모니터 (performanceCounters = "모두")에서 WCF 서비스의 모든 작업을 볼 수있었습니다. 이로 인해 어떤 작업이 가장 많이 사용되었는지 쉽게 알 수있었습니다.

performanceCounters가 "모두"로 설정되어있는 경우에도 성능 카운터를 다시 필요로하지만 성능 모니터에서 찾을 수 없습니까?

다시 가져 오려면 어떻게해야합니까?

WCF 서비스는 해당 작업을 사용하기 위해 로그인해야하지만 로그인은 수동으로 수행됩니다. 즉, 사용자가 사용자 이름과 암호로 로그인 작업을 먼저 호출하고 올바르지 않은 데이터 인 경우 securityException이 발생합니다. . 그래서 아무 것도 발전하지 못했습니다.

+0

이 설정을 사용해 보셨습니까? http://www.codeproject.com/Articles/431917/WCF-Service-Performance-Monitoring-using-Perfmon –

+0

WCF 확장 점을 추가 했습니까? IOperationInvoker? 예 : 셀프 호스팅 Windows 서비스 또는 IIS? 서비스는 어떤 ID로 실행됩니까? 이벤트 로그를 확인 했습니까? 지금까지 뭐 해봤 어? –

+0

@ErikFunkenbusch 나는 그 기사가 더 이상 내가 한 것을 볼 수 없다. 개별 웹 서비스 메소드의 성능 담당자에 대해서는 전혀 언급하지 않습니다. – Banshee

답변

1

WCF는 유용한 모니터링 도구와 확장 성 끝점으로 가득 차 있습니다. 이러한 모니터링 도구와 확장 성 끝점을 통해 자신의 솔루션을 활용하거나 연결할 수 있습니다.

분명히 계측 도구를 어느 정도 준비 할 수 있습니다. http://msdn.microsoft.com/en-us/library/ms735098(v=vs.110).aspx이 기사에서는 간단한 app.config를 변경하여 이러한 측정 항목을 게시해야한다고 설명합니다.

자세한 정보 (또는 아직 제공되지 않은 것)가 필요하다면 메소드가 구현되기 전에 (오른쪽에서) 호출되고 완료 직후에 호출되는 IOperationInvoker 또는 IParamterInspector를 실제로 만들 수 있습니다. Ive는 메서드가 호출되기 전에 스레드에 컨텍스트 정보를 추가하고 호출자가 사용 권한이있는 매개 변수를 전달하는지 확인하고 호출 전후에 단순히 타임 스탬프를 지정하여 호출 성능을 측정하기 위해이 메서드를 사용했습니다. WCF 스택의 확장 지점 목록을 보려면 http://msdn.microsoft.com/en-us/library/System.ServiceModel.Dispatcher(v=vs.110).aspx을 확인하십시오. 행운을 빌어 요