Windows Azure SDK 1.2からWindows Azure SDK 1.3へアップグレードすると、Windows Azure上で動作するアプリケーションで、ログ送信が止まってしまう可能性があります。問題が発生している事例をいくつか発見しています。
しかし、この問題は必ず発生するものではありませんが、もし、この問題に遭遇した場合は、MonAgentHostのイベントログを確認する必要があります。下のようなログが記録されているかもしれません。
[Diagnostics]: Checking for configuration updates 11/30/2010 02:19:09 AM. [MonAgentHost] Error: MA EVENT: 2010-11-30T07:21:35.149Z [MonAgentHost] Error: 2 [MonAgentHost] Error: 4492 [MonAgentHost] Error: 8984 [MonAgentHost] Error: NetTransport [MonAgentHost] Error: 0 [MonAgentHost] Error: x:\rd\rd_fun_stable\services\monitoring\shared\nettransport\src\netutils.cpp [MonAgentHost] Error: OpenHttpSession [MonAgentHost] Error: 686 [MonAgentHost] Error: 0 [MonAgentHost] Error: 57 [MonAgentHost] Error: The parameter is incorrect. [MonAgentHost] Error: WinHttpOpen: Failed to open manually set proxy <null>; 87 [MonAgentHost] Error: MA EVENT: 2010-11-30T07:21:35.249Z [MonAgentHost] Error: 2 [MonAgentHost] Error: 4492 [MonAgentHost] Error: 8984 [MonAgentHost] Error: NetTransport [MonAgentHost] Error: 0 [MonAgentHost] Error: x:\rd\rd_fun_stable\services\monitoring\shared\nettransport\src\netutils.cpp [MonAgentHost] Error: OpenHttpSession [MonAgentHost] Error: 686 [MonAgentHost] Error: 0 [MonAgentHost] Error: 57 [MonAgentHost] Error: The parameter is incorrect. [MonAgentHost] Error: WinHttpOpen: Failed to open manually set proxy <null>; 87 [Diagnostics]: Checking for configuration updates 11/30/2010 02:20:11 AM.
このエラーは、Diagnostic Monitor がテーブルストレージにログを送信しようとするたびに、DiagnosticsAgent.exe(Windows SDK 1.2までは、MonAgentHost.exe)が書き込んでいます。
*. ScheduledTransferPeriod()ファンクションで使用するdiagnostics monitorツールからログを送信しようとした時に発生します。
回避策
この問題を解決するには、ServiceDefinition.csdef の<sites></sites>セクションを削除するかコメントアウトします。
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="Your_Service_Name" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"><WebRole name="MyWebRole" enableNativeCodeExecution="true">
<!–<Sites>
<Site name="Web"><Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" />
</Bindings>
</Site>
</Sites>–>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
<Imports>
<Import moduleName="Diagnostics" />
</Imports>
</WebRole>
</ServiceDefinition>
注意点
注意すべき点は、<sites></sites>セクションをサービス定義ファイルから削除orコメントアウトすると、アプリケーションをHWCで動作させることになります。これは、フルIISロールw3wp.exeの代わりにWaWebHost.exeプロセス上で動作させます。
定義ファイルに、<sites></sites>セクションがあるとフルIISWebロールでアプリケーションが動作します。、<sites></sites>セクションをコメントアウトすると、アプリケーションは、webロールベースのWindows Azure SDK 1.2でアプリケーションを動作させていることになります。
元情報
Handling problem: Diagnostics Monitor is not sending diagnostics logs to Azure Storage after upgrading Windows Azure SDK from 1.2 to 1.3を意訳したエントリーです。誤訳があるかもしれませんので、正確な情報は元記事を参照してください。