はじめに
本稿では、Windows Azure SDK 1.3によって追加されたFull IIS機能について、「第2回」で紹介した権限昇格機能と組み合わせたIISの構成変更について紹介します。また、MIX11で機能追加されたWeb配置機能ついても、あわせて紹介します。
対象読者
- Windows Azureの新機能に興味のある方。
- Windows Azureのサブスクリプションを持っており、Azureを利用したことがある方。
必要な環境
- Windows Azureサブスクリプション
- Visual Studio 2010もしくは、Visual Web Developer 2010 Express
- Windows Azure Tools for Microsoft Visual Studio 2011.3以降 (Windows Azure SDK 1.4含む)
なお、本稿はWindows Azure SDK 1.3で追加された新機能説明ですが、執筆時点での最新版はWindows Azure SDK 1.4更新版です。Windows Azure SDK 1.3で発生していた、いくつかの問題が修正されているため、最新版の利用をお勧めします。また、本稿は、Windows Azure SDK1.4 Refreshで確認を行っています。
今回も、各機能のポイントを、サンプルプログラムをベースに説明していきます。プログラムの詳細は、サンプルファイルに含まれる各ソリューションを確認してください。
ASP(Active Server Pages)の利用
ここからは、Windows AzureのFull IISでASP(Active Server Pages)を実行する方法について説明します。ASPを利用するためには、スタートアップタスクでASPコンポーネントをインストールし、IISを構成する必要があります。サンプルファイルでは、AspSampleフォルダの配下を確認してください。
スタートアップタスクの構成
ソリューションには、Webロールプロジェクトが定義されていますが、新規に作成しても構いません。
第2回の「Windows Azure権限昇格編」を参考にスタートアップタスクを構成し、ASPコンポーネントをインストールします(リスト1)。
@echo off start /w pkgmgr /iu:IIS-ASP *1 exit /b 0
*1のpkgmgrコマンドでASPコンポーネントをインストールします。オプション /iu に続く引数には、有効化したいWindowsの機能名を指定します。ASPを有効化するためにはIIS-ASPを指定します。start /wコマンドは、pkgmgrコマンドが終了するまで待機させるために使用します。
サービス定義ファイルを修正し、startup.cmdを管理者権限で実行します(リスト2)。
<WebRole name="WebRole1" vmsize="ExtraSmall"> <Startup> <Task commandLine="startup.cmd" executionContext="elevated" taskType="simple" /> </Startup> … </WebRole>
ASPページの作成
Default.aspを新規作成し、リスト3の内容を入力します。Response.Writeメソッドと、Date関数によって動的にページを書き換えます。
<%@ Language=VBScript %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <title>ASPテスト</title> </head> <body> <p style="font-weight:bold; font-size:150%" > <% Response.Write "Hello Active Server Pages." %><br /> 日時:<% =Date %> </p> </body> </html>
ASPページの確認
Windows Azureに配置して実行確認してみましょう。図1の実行結果が得られます。
ASP自体は、アプリケーションプールが64bitのままでも動作します。アプリケーションプールを32bitで再構成したい場合は、「第2回」のサンプルを参考に、アプリケーションプールを再構成してください。
リモートデスクトップ接続し、IISマネージャを確認するとASPが構成されていることが確認できます(図2)。
ASPの利用にあたっては、TechNetの「IIS 7.0 および IIS 7.5 上で Classic ASP アプリケーションを実行する」が参考になるでしょう。