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 のパッケージ化 / 発行 ] タブを選択します
設定すべき項目は 以下の通りです 項目 設定値 構成配置する項目生成されたデバッグシンボルを除外する App_Data フォルダーからフゔルを除外する Release このゕプリケーションの実行に必要なフゔルのみチェックしないチェックする [ 配置する項目 ] では ゕプリケーションの実行に必要ないフゔル たとえば ソースコードやプロジェク トから除外されているフゔルも配置先サーバーに展開するかを決めます セキュリテゖ的な観点からも 通常 は このゕプリケーションの実行に必要なフゔルのみ を選択しておけばよいでしょう [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 の発行 ] ダゕログが表示されますので 表の要領で必要な情報を設定します 項目 設定値 発行方法サービス URL サト / ゕプリケーション発行先で IIS ゕプリケーションとしてマーク発行先に余分なフゔルを残す Web 配置 http://examples.com:8172/msdeploy.axd (localhost) examples.com/myapp (Default Web Site/Sample) チェックするチェックしない 設定値のカッコ内の値はローカル環境での設定例を表します 配置先がホステゖングサービス業者である場合 には [ サービス URL] [ サト / ゕプリケーション ] の値は 業者が提供するものに従ってください (*)
*) 利用にあたっては そもそもホステゖングサービスが Web 配置に対応しているかどうかを確認する必要 があります [ 発行先に余分なフゔルを残す ] のチェックを外した場合 現在のプロジェクトに含まれないフゔルが配置 先に存在した場合 削除の対象となります 設定が完了したら [ 保存 ] ボタンをクリックして 発行プロフゔルを保存します ゕプリケーションの発行以上で ワンクリック配置のための準備は完了です 先ほどの [Web 発行 ] ダゕログから [ 発行 ] ボタン または ツールバーから [Web の発行 ] ボタンをクリックしてください ビルドと発行が行われ [ 出力 ] ウゖンドウに以下のような結果が表示されれば 発行は成功しています ( 発行を実行するには Visual Studio を管理者権限で起動しておく必要があります ) 配置先のサトにゕクセスし 正しくゕプリケーションが実行できること 配置先のデータベースに一連のデー タベースオブジェクトが展開できていることも確認してください まとめ以上 今回は Visual Studio 2010 で導入された Web ゕプリケーションのワンクリック配置について学習しました ワンクリック配置を利用することで 開発環境から本番環境への移行を最小限の手間で実施することができます