こんばんは、statemachineです。本日は、Windows Azure Startup Tasks: Tips, Tricks, and Gotchas からの話題。
start /w cmd をスタートアップタスクのバッチファイル中に記述しておくと、デバック起動時にコマンドプロンプトが立ち上がるというもの。スタートアップタスクのコンテキストで起動するので、色々とデバッグ出来るのではないかということらしい。
サービス定義ファイルにStartup要素を追加。taskTypeをsimpleにしておけば、コマンドプロンプトを抜けるまで起動シーケンスは中断(Wait)したままとなります。
<?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="WindowsAzureProject1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WebRole name="WebRole1"> <Startup> <Task commandLine="startup.cmd" executionContext="limited" taskType="simple"></Task> </Startup> ...
バッチファイルには以下の一行。FAQですが、Visual Studioでテキストファイルを作成するとBOMが挿入されるので、Azureが正しく起動しません、Notepadなどで作成してプロジェクトに取り込んでください。プロパティをコピーするにするのを忘れずに。
start /w cmd
起動してみませう。以下のような感じで起動します。exitすれば引き続きAzureの起動が続きます。
どう使えるかまだよくわかってません。
このままデプロイして、Remote Desktop接続しようとしても、このスタートアップタスクがRemote Desktopの初期化を邪魔するので、接続できません。taskTypeをbackgroundにする必要があるでしょう(未確認)