7

예외 :PerformanceCounter.NextValue()이이 성능 카운터를 생성하는 코드 InvalidOperationException이

var ftpPerfCounter = new PerformanceCounter("FTP Service", "Current Connections", "_Total"); 

예외 상황이 발생하는 곳이다

:

여기
int cnt = (int)Math.Round(ftpPerfCounter.NextValue()); 

Exception 메시지의

"오류 메시지 : 지정한 범주의 카운터 레이아웃이 잘못되었습니다, AverageCount64, AverageTimer32, CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, CounterMultiTimer100NsInverse, RawFraction 또는 SampleFraction 형식의 카운터 에는 즉시 AverageBase, CounterMultiBase, RawBase 또는 SampleBase 중 하나의 기본 카운터 유형이 와야합니다. "

오류 메시지는 매우 이상합니다. 나는 미래에 예외를 피하기 위해 할 수있는 일이 무엇인지 확신 할 수 없다.

상세이의 Windows Server 2008 R2 64 비트 OS에서 발생

. FTP 서버는 IIS입니다.

답변

1

내 PC에 설치된 IIS를 가지고 있지만, 내가 한 경우, 여기에 내가 시도 할 것입니다 무엇을하지 않습니다

  1. 시도를에서 드래그 앤 드롭으로 WMI에 대한 비주얼 스튜디오의 코드 생성기를 사용하는 서버 탐색기. 생성 된 코드를 검사하여 코드와 다른 점이 있는지 확인하십시오.
  2. 반사기를 사용하여 예외가 발생하는 위치를 확인하고, BCL 내에 사용자 정의 중단 점을 설정하고, 재생산하십시오. 그런 다음 호출 스택 내용을 분석하고 의심스러운 코드 경로 또는 예기치 않은 상태를 찾습니다.
0

그들은 비슷한 문제를 해결 한 것 같습니다 here. 기본 카운터를 설정해야합니까?

2

최소한 IIS 7.5가 설치된 Windows Server 2008 R2에서는 성능 카운터 범주를 "FTP 서비스"가 아닌 "Microsoft FTP 서비스"라고합니다. 아마도 OS/IIS 버전마다 다르지만 쉽게 확인할 수 있습니다. 대상 서버/시스템에서

:

  1. 실행 "성능 모니터"왼쪽 탐색 창에서
  2. 클릭 "성능 모니터
  3. 성능 카운터를
  4. 스크롤을 추가하려면 더하기 아이콘을 클릭합니다 사용 가능한 카운터 목록 아래로 FTP 또는 Microsoft FTP가 있는지 확인하십시오. Microsoft FTP 서비스가 설치되어 있지 않으면 성능 카운터가 표시되지 않습니다.
  5. 한 번 발견되면 그것을 선택하면 쿼리 할 수있는 특정 카운터 인스턴스 목록이 표시됩니다. 이러한 인스턴스 중 하나가 관심있는 '_Total'입니다.

물론 성능 카운터가 코드와 독립적으로 작동한다는 것도 증명할 수 있습니다. 알고있는 것이 좋습니다!

Performance Counters in C#/.NET see this stackoverflow post을 사용하는 구체적인 모범 사례 정보는을 참조하십시오.