2012-01-24 13 views
0

をスローパフォーマンスカウンタは、これはコードでSecurityExceptionが

PerformanceCounterCategory.Create("DemoCategory", "Demo category", 
    PerformanceCounterCategoryType.SingleInstance, ccdArray); 

は、例外がスローされたラインです。

私はPerformanceCounterPermissionについて読んでいますが、どうすればよいですか?

+0

'requestedExecutionLevel'が' requireAdministrator'に設定されるようにアプリケーションのマニフェストを変更してください。 –

+0

@CodyGray解決済み。ありがとう;) –

+1

ようこそ。あなたはそれを受け入れて質問を閉じることができるように、完全な答えを追加しました(今は私が電話にいなくなったので)。 –

答えて

6

アプリケーションのプロセスに適切な特権レベルがありません。それがセキュリティ例外があなたに伝えていることです。

簡単な修正は、アプリケーションの起動時にそのアクセス許可を要求することです。 requestedExecutionLevelrequireAdministratorに設定されるように、アプリケーションのマニフェストを変更することでこれを行うことができます。

完全なセクションでは、このようになります、アプリケーションのマニフェストに追加:

<!-- Identify the application security requirements. --> 
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
    <requestedPrivileges> 
     <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
    </requestedPrivileges> 
    </security> 
</trustInfo> 

アプリケーションは、あなたが常に最低で実行する必要があるためはそうは、管理者権限を必要としない場合は、より良い選択肢が潜在的にあります。特権レベルは絶対に必要または必要です。 Googleを使用してこれらの代替案を調査することができます。 別のプロセスをスピンオフさせ、UACの高度を要求し、ユーザーが明示的に要求したときにパフォーマンスカウンタを実行するプロセスが含まれます。

関連する問題