スタートアップ タスクの利用例(ASP編)

Windows Azure SDK 1.3 からスタートアップ タスクという機能が追加され、今までできなかった IIS のカスタマイズや、アプリケーションのインストール等ができるようになっています。

いろいろなことができますが、まずは、ASP(Active Server Pages)を実行するための手順を記述しておきます。なお、以下の手順は、こちらのプロジェクトに既に設定されているので、そのまま使うことが可能です。

(1) Visual Studio で Web ロールを追加したクラウド プロジェクトを作成

(2) ServiceDefinition.csdef ファイル内に、実行するコマンドを追加

  <WebRole name="WebRole1">

    <Startup>

      <Task commandLine="startup.cmd" executionContext="elevated" taskType="simple"/>

    </Startup>

    <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>

(3) Web ロールのプロジェクトに startup.cmd ファイルを追加。内容は、

start /w pkgmgr /iu:IIS-ASP

※上記は、IIS の ASP をホスティングする機能を有効化する設定。他の設定を行う場合は、コマンドで指定する前に、リモートデスクトップで Azure にログインして、テストしたから記述することがお勧め。

(4)startup.cmd のプロパティで、”出力ディレクトリにコピー” を “常にコピーする” に設定

(5)Web ロールのプロジェクトに default.asp を追加。内容例は以下。

<%@ Language="javascript" %>

<html>

<head>

<title>Hello, World!</title>

</head>

<body>

    <% Response.write("Hello from Classic ASP!"); %>

</body>

</html>

後は Azure のソリューションをアップロードし、ページを表示すれば “Hello from Classic ASP!” と表示され、ASP が実行されることを確認できます。

ASP では、COM コンポーネントを使うことがありますが、COM コンポーネントを予め登録する場合は(COM 世代の人なら当たり前のように)、statup.cmd 内に regsvr32 /s xxxx.dll を記述します。