SDK1.6より前のデフォルトがどうなっていたか定かではないのですが。元ネタは、With Azure SDK 1.6, Azure Diagnostics is enabled by default can cause thousands of daily transections to Azure Storage - Avkash Chauhan's Blog - Site Home - MSDN Blogsでございます。
まずは、おさらいとして。Windows Azureにおけるログの出力は、デフォルトで有効になっていて、ローカルストレージに勝手に出力されています。それだけですと、インスタンスが死んだり、こけた時にログもろとも消えてしまうので、それらを保存しないといけません。
診断機能は、それらのログを、AzureストレージのBLOBやテーブルにせっせと転送する機能となります。
当然、ストレージに転送すれば、容量やトランザクションに対して課金されることとなります。
という前提を踏まえたうえで、要約すると、
- SDK1.6から診断機能がデフォルトで有効
- 通常は開発ストレージの文字列が入っている
- ただし、Visual Studioから直接発行する場合にかぎって、発行につかったストレージアカウントを診断機能の出力先として使う。
ということです。デプロイ時に、サービス構成ファイル(*.cscfg)を勝手に書き換えてデプロイしてしまうんでしょうか。
こうなると、利用者にとっては予期しない課金が発生するために、Blogでアナウンスされたんでしょうと推測。
回避方法としては、
- 「Windows Azureへの発行時に発行ストレージアカウントを文字列として使用する」ってのをオフにする。
- または、根こそぎ診断機能を無効にする。
- または、管理ポータルから直接デプロイする。
ってところでしょうか。Visual Studioのお節介機能ですかねぇ。次回のエンハンスでオフになるのに100カノッサということで、さようなら。