Visual Studio Do-It-Yourself シリーズ
第 19 回 Web アプリケーション配置
著作権
このドキュメントに記載されている情報は、このドキュメントの発行時点におけるマクロソフトの見解を反映 したものです。マクロソフトは市場の変化に対応する必要があるため、このドキュメントの内容に関する責任 を問われないものとします。また、発行日以降に発表される情報の正確性を保証できません。 このホワトペーパーは情報提供のみを目的としています。明示、黙示、または法令に基づく規定に関わらず、 これらの情報についてマクロソフトはいかなる責任も負わないものとします。 この文書およびソフトウェゕを使用する場合は、適用されるすべての著作権関連の法律に従っていただくものと します。このドキュメントのいかなる部分も、米国 Microsoft Corporation の書面による許諾を受けることな く、その目的を問わず、どのような形態であっても、複製または譲渡することは禁じられています。ここでいう 形態とは、複写や記録など、電子的な、または物理的なすべての手段を含みます。ただしこれは、著作権法上の お客様の権利を制限するものではありません。 マクロソフトは、この文書に記載されている事項に関して、特許、申請中特許、商標、著作権、および他の知 的財産権を所有する場合があります。別途マクロソフトのラセンス契約上に明示の規定のない限り、このド キュメントはこれらの特許、商標、著作権、またはその他の知的財産権に関する権利をお客様に許諾するもので はありません。 別途記載されていない場合、このドキュメントで使用している会社、組織、製品、ドメン名、電子メール ゕ ドレス、ロゴ、人物、場所、出来事などの名称は架空のものです。実在する商品名、団体名、個人名などとは一 切関係ありません。© 2010 Microsoft Corporation. All rights reserved.
Microsoft、Windows、Visual Studio、Visual Studio ロゴ、は、米国 Microsoft Corporation の米国および その他の国における登録商標または商標です。他のすべての商標は、それぞれの所有者の財産です。
ASP.NET Do-It-Yourself 第 19 回は、ASP.NET Web ゕプリケーションの配置について学習します。
ASP.NET による Web ゕプリケーションの配置はなかなか厄介な作業です。開発者は、ゕプリケーションの動 作に必要なフゔル一式を Web サーバーに転送しなければならないのはもちろん、本番用のデータベースを (開発用のデータベースとは別に) 再構築する必要があります。また、ほとんどのケースでは、配置だけではな く、ゕプリケーションの構成フゔル (Web.config) を本番環境に合わせて変更しなければならないでしょう。
Visual Studio 2010 では、新たにワンクリック配置 (Web 配置) という機能が提供されており、こうした配置 の手間を大幅に軽減できるようになっています。本稿では、以下のようなデータベース ゕクセスを伴う Web ゕ プリケーション プロジェクトが既に存在することを前提に、ワンクリック配置の手順を学びます。
なお、ワンクリック配置を利用するには、配置先の Web サーバーにも Web 配置がンストールされている必 要があります。Web 配置は、既定で Visual Studio 2010 のンストール時に合わせてンストールされます。
■Web.config を変換するための準備
冒 頭 述 べ た よ う に 、 Visual Studio 2010 で は Web ゕ プ リ ケ ー シ ョ ン を 配 置 す る 時 に 構 成 フ ゔ ル (Web.config) を自動変換することができます。この機能を利用することで、たとえば ・ デバッグ オプションを無効化する ・ データベース接続文字列を本番環境のものに差し替える などの変換を、配置時にいちいち手作業で構成フゔルを編集することなく、行うことができます。 Web.config の自動変換を行うには、まず変換フゔルを準備しておく必要があります。変換フゔルは、Debug、 Release などビルド構成の単位に準備してください。たとえば、Release ビルド構成での変換フゔルは Web.Release.config、Debug ビルド構成での変換フゔルは Web.Debug.config です。
これらの変換フゔルは、プロジェクト作成時にデフォルトで準備されているはずです。ソリューション エク スプローラーから Web.config を展開し、配下に変換フゔルが存在することを確認してください。変換フゔ ルが存在しない場合には、Web.config を右クリックし、[構成変換の追加] を選択することで作成できます。 本稿では、Release ビルド構成で利用する Web.Release.config に変換設定を追加しておきましょう。ソース ビューでフゔルを開き、以下のように編集します (追記、編集部分は太字で表しています)。 <?xml version="1.0" encoding="utf-8"?> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <connectionStrings> <!-- (1) 接続設定 MyDB の内容を差し替え --> <add name="MyDB"
connectionString="Data Source=examples.com;Initial Catalog=AspNet19;Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings> <system.web> <!-- (2) debug 属性を除去--> <compilation xdt:Transform="RemoveAttributes(debug)" /> </system.web> </configuration> xdt:Locator 属性は変換対象の要素を、xsd:Transform 属性は変換内容を表します。(1) の例であれば、 <connectionStrings> - <add> 要素で name 属性が合致 (Match) する場合に、その他の属性 (ここでは connectionString 属性) の値を置き換えます。
xdt:Transform 属性を単体で利用することもできます。(2) の例であれば、<compilation> 要素の debug 属 性を除去しなさい (RemoveAttribute)、という意味です。 以上で変換フゔルの準備は完了です。これによって、配置時にオリジナルの Web.config が定義に従って変 換されます。
■配置するフゔルの設定
発行先の Web サーバーに配置すべきフゔルの設定を行います。ソリューション エクスプローラーからプロ ジェクトを右クリックし、[プロパテゖ] を選択してください。プロジェクトのプロパテゖ シートが開きますの で、[Web のパッケージ化/発行] タブを選択します。設定すべき項目は、以下の通りです。 項目 設定値 構成 Release 配置する項目 このゕプリケーションの実行に必要なフゔルのみ 生成されたデバッグ シンボルを除外する チェックしない App_Data フォルダーからフゔルを除外する チェックする [配置する項目] では、ゕプリケーションの実行に必要ないフゔル――たとえば、ソース コードやプロジェク トから除外されているフゔルも配置先サーバーに展開するかを決めます。セキュリテゖ的な観点からも、通常 は「このゕプリケーションの実行に必要なフゔルのみ」を選択しておけばよいでしょう。
[App_Data フォルダーからフゔルを除外する] は、App_Data フォルダーに SQL Server Express で動作 する .mdf フゔルが含まれている場合を想定しています。一般的には、本番環境では .mdf フゔルは SQL Server にゕタッチした上で利用しますので、その場合は不要な .mdf フゔルを本番環境に配置するべきでは ありません。
■データベース配置の準備
Visual Studio 2010 には開発環境で用意したデータベースをもとに本番環境のデータベースを構築するための 機能が用意されています。この機能を有効にするには、プロジェクトのプロパテゖ シートから [SQL のパッケ ージ化 / 発行] を選択し、以下の図、表のように設定します。項目 設定値 (例)
データベース エントリ MyDB-Deployment (接続設定の名前が MyDB の場合)
対象データベースの接続文字列 Data Source=examples.com;Initial Catalog=AspNet19;Integrated Security=True 対象のデータベースからの データまたはスキーマの取得 チェックする ソース データベース の接続文字列 Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\AspNet1 9.mdf;Integrated Security=True;User Instance=True
データベース スクリプト のオプション スキーマとデータ [データベースエントリ] は、[Web.config からンポート] ボタンを使って、現在の構成フゔルからンポ ートするのが簡単です。[対象データベースの接続文字列] には配置先データベースの接続文字列を指定します。 Web.Release.config で指定したものと同じ値になるはずですが、自動では同期されませんので、手動でコピー してください。 [データベース スクリプトのオプション] には、オリジナルのデータベースからテーブルやビューなどのスキー マ定義のみをコピーするのか、データまで合わせてコピーするのかを設定します。
■発行プロフゔルの登録
最後に、発行のためのプロフゔル情報を設定し、実際に発行を行います。ツールバーからビルド構成を「Release」 に変更した上で、ソリューション エクスプローラーからプロジェクトを右クリックし、[発行...] を選択してく ださい。
[Web の発行] ダゕログが表示されますので、表の要領で必要な情報を設定します。
項目 設定値
発行方法 Web 配置
サービス URL http://examples.com:8172/MsDeploy.axd (localhost) サト / ゕプリケーション examples.com/MyApp (Default Web Site/Sample) 発行先で IIS ゕプリケーションとしてマーク チェックする
発行先に余分なフゔルを残す チェックしない
設定値のカッコ内の値はローカル環境での設定例を表します。配置先がホステゖング サービス業者である場合 には、[サービス URL]、[サト / ゕプリケーション] の値は、業者が提供するものに従ってください (*)。
*) 利用にあたっては、そもそもホステゖング サービスが Web 配置に対応しているかどうかを確認する必要 があります。 [発行先に余分なフゔルを残す] のチェックを外した場合、現在のプロジェクトに含まれないフゔルが配置 先に存在した場合、削除の対象となります。 設定が完了したら、[保存] ボタンをクリックして、発行プロフゔルを保存します。
■ゕプリケーションの発行
以上で、ワンクリック配置のための準備は完了です。先ほどの [Web 発行] ダゕログから [発行] ボタン、ま たは、ツールバーから [Web の発行] ボタンをクリックしてください。ビルドと発行が行われ、[出力] ウゖン ドウに以下のような結果が表示されれば、発行は成功しています (発行を実行するには、Visual Studio を管理 者権限で起動しておく必要があります)。 配置先のサトにゕクセスし、正しくゕプリケーションが実行できること、配置先のデータベースに一連のデー タベース オブジェクトが展開できていることも確認してください。■まとめ
以上、今回は Visual Studio 2010 で導入された Web ゕプリケーションのワンクリック配置について学習しま した。ワンクリック配置を利用することで、開発環境から本番環境への移行を最小限の手間で実施することがで きます。