Windows Azure SDK 1.3でDiagnosticsまわりに若干変更がありました。
SDK 1.3ではImport要素でもろもろのPluginを追加できるようになっています。
例えばリモートデスクトップや診断など。
で、診断まわりを有効する場合、SDK 1.2以前は RoleEntryPoint.OnStart で Diagnostics.OnStart() メソッドを呼んで有効化してたのですが、SDK 1.3ではImport要素でDiagnosticsをPluginとして追加するだけで自動的に有効になるように変更されています。
ただ、そのままだとログ周りの初期設定などができていませんので、取得するログの設定する必要があります。
このあたりは以前と変わらないのですが、 DiagnosticMonitor.GetDefaultInitialConfiguration() メソッドでコンフィグを取得していたのに対し、SDK 1.3では RoleInstanceDiagnosticManager.GetCurrentConfiguration() と SetCurrentConfiguration() を使用してコンフィグの取得・設定を明示的に行う必要があるようです。
まぁPluginで自動的に開始されちゃった後なので、しょうがないですね。
詳しくはこちら → Configuration Changes to Windows Azure Diagnostics in Azure SDK v1.3
さてSDK 1.3では機能追加しすぎたせいもあって?、いろいろIssueがあがっています。
で、診断まわりでいうと最後の6.の部分。
- Guest OS 2.x (Windows Server 2008 R2ベース)+ Hosted Web Coreで動かしている場合
- SDK 1.3を使ってFull IISでWeb Roleインスタンスを走らせてる場合
上記のどちらかに該当する場合、IISログが収集できないようです。
まぁどちらかというとSDK 1.3というよりは、IIS/Windows Server 2008 R2での制限な気もしますが。
今のところ対処方法としてはStartup Tasksで特権を使ってIISログを診断モニタがアクセスできる場所にコピーするようにするか、リモートデスクトップでつないで見ろ、という感じ。
結構無茶いいますなw
ログの場所がわかっていればStartup Tasksでログフォルダに権限を与えるとかも可能な気がしますが、試していないので微妙。
Adminモードなら見れそうな気もしますけど、、、
という感じで診断モニタ使う方は要チェックです。