スタートアップ タスクの利用例(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 を記述します。