2010-07-29 2 views
0

아래의 Entlib 4.1을 사용하여 성능 카운터를 만들었습니다. performon.exe 및 카운터 추가 - 내가 만든 성능 개체와 카운터 목록을 볼 수 있습니다. 그러나 추가 단추가 비활성화되어 있기 때문에 추가 할 수 없습니다. 성난 건가요?도와주세요! 성능 카운터를 추가 할 수 없습니다 - '추가'버튼이 비활성화되었습니다.

public class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine("You are about to install the performance counters"); 
     InstallPerformaceCounters(); 
     Console.ReadLine(); 


     for (int i = 0; i < 100000; i++) 
     { 
      if (i % 3 == 2) 
      { 
       Thread.Sleep(100); 
      } 

      if (i % 5 == 2) 
      { 
       Thread.Sleep(1000); 
      } 

      PerformSearch(i); 
     } 

     Console.ReadLine(); 
    } 

    private static void PerformSearch(int i) 
    { 
     Console.WriteLine(i); 
    } 

    private static void InstallPerformaceCounters() 
    { 
     try 
     { 
      PerformanceCountersInstaller installer = new PerformanceCountersInstaller(new SystemConfigurationSource()); 
      IDictionary state = new System.Collections.Hashtable(); 
      installer.Context = new InstallContext(); 
      installer.Install(state); 
      installer.Commit(state); 
      Console.WriteLine("Performance counters have been successfully installed."); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 
} 

////

의 App.config

  <?xml version="1.0" encoding="utf-8"?> 
     <configuration> 
      <configSections> 
       <section name="policyInjection" type="Microsoft.Practices.EnterpriseLibrary.PolicyInjection.Configuration.PolicyInjectionSettings, Microsoft.Practices.EnterpriseLibrary.PolicyInjection, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
       <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
       <section name="instrumentationConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Common.Instrumentation.Configuration.InstrumentationConfigurationSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     </configSections> 
     <policyInjection> 
      <policies> 
       <add name="Search"> 
        <handlers> 
         <add categoryName="Search Performance Counters" instanceName="Default" 
     useTotalCounter="false" incrementNumberOfCalls="true" incrementCallsPerSecond="true" 
     incrementAverageCallDuration="true" incrementTotalExceptions="true" 
     incrementExceptionsPerSecond="true" type="Microsoft.Practices.EnterpriseLibrary.PolicyInjection.CallHandlers.PerformanceCounterCallHandler, Microsoft.Practices.EnterpriseLibrary.PolicyInjection.CallHandlers, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
     name="Performance Counters Handler" /> 
        </handlers> 
       </add> 
      </policies> 
     </policyInjection> 
    <instrumentationConfiguration performanceCountersEnabled="true" 
eventLoggingEnabled="false" wmiEnabled="false" applicationInstanceName="" /> 
    </configuration> 

답변

0

이 내 실수였다. 앱을 실행해야합니다. 특히 해당 카운터로 장식 된 메소드가 필요하므로 카운터를 목록에 추가 할 수 있습니다.

관련 문제