2016-07-15 20 views
1

私はAzure Web Appを、PerformanceCountersへのアクセスが必要と思われるサードパーティ製のソフトウェアの使用を含めるように設定しようとしています。ローカルでこれが正常に動作しますが、私はアズールでそれを実行すると、私は次のエラーを取得する:Azure Appサービス:PerformanceCountersを使用する

[UnauthorizedAccessException: Access to the registry key 'Global' is denied.] 
Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str) +5230217 
Microsoft.Win32.RegistryKey.InternalGetValue(String name, Object defaultValue, Boolean doNotExpand, Boolean checkSecurity) +11769029 
Microsoft.Win32.RegistryKey.GetValue(String name) +40 
System.Diagnostics.PerformanceMonitor.GetData(String item) +102 
System.Diagnostics.PerformanceCounterLib.GetPerformanceData(String item) +186 
System.Diagnostics.PerformanceCounterLib.get_CategoryTable() +105 
System.Diagnostics.PerformanceCounterLib.GetCategorySample(String category) +17 
System.Diagnostics.PerformanceCounterLib.GetCategorySample(String machine, String category) +61 
System.Diagnostics.PerformanceCounterCategory.GetCounterInstances(String categoryName, String machineName) +70 
System.Diagnostics.PerformanceCounterCategory.GetInstanceNames() +25 

this answerによると、私は、アプリケーションプール/ユーザーへのアクセスを許可するようにIISを構成する必要がありますが、私は思いませんAzure Web Appでは可能です。私の状況でパフォーマンスカウンターを稼働させる方法はありますか? Windowsでは

+0

次のグループにキャッシュクライアントアプリケーションアカウントを追加してください。Performance Monitor UsersグループとPerformance Log Usersグループ。キャッシュクライアントアプリケーションを再起動します。 – Thennarasan

+0

wbemtest "Win + R"を試し、wbemtestと入力してエラーを確認してください。 –

答えて

1

は、パフォーマンスカウンタがWMIを通じてアクセスできます。
https://msdn.microsoft.com/en-us/library/aa392397(v=vs.85).aspx

WMIは、Appサービスサンドボックス内で制限されています。 https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#access-to-out-of-process-com-serversから

Access to out-of-process COM servers

Windows Servers have a bunch of COM servers configured and available for consumption by default; however the sandbox prevents access to all out-of-proc COM servers. For example, a sandboxed application cannot call into WMI, or into MSIServer.

クーズーから:

PS D:\home> Get-Counter -Counter "\processor(_total)\% processor time" 
Get-Counter : The specified object was not found on the computer. 


PS D:\home> Get-WmiObject -Class WIN32_OperatingSystem 
Get-WmiObject : Access is denied. (Exception from HRESULT: 0x80070005 
(E_ACCESSDENIED)) 

あなたは絶対に(Webロールを持つ)のAzureクラウドサービスを見て、サードパーティ製のソフトウェアを使用する必要がある場合。あなたはまだPaaSの間にOSをフルコントロールできます。

+0

これは私が恐れていたものです。以前はクラウドサービスでWorker Roleを使用してソフトウェアを実行していましたが、テストでは過度な作業だったので、コストの低いものを求めました。私は運が尽きているようだ。 –

関連する問題