Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

スタートアップタスクでコマンドプロンプトを開く

こんばんは、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にする必要があるでしょう(未確認)