Visual Studio を使用した SQL Server Compact での ASP.NET Web アプリケーションの配置 - 1/12

著者: Tom Dykstra

スターター プロジェクトのダウンロード

このチュートリアル シリーズでは、Visual Studio 2012 RC または Visual Studio Express 2012 RC for Web を使用して、SQL Server Compact データベースを含む ASP.NET Web アプリケーション プロジェクトを、配置 (発行) する方法について説明します。 Web 発行の更新をインストールすれば、Visual Studio 2010 を使用することもできます。

Visual Studio 2012 の RC リリース以降に導入された配置機能の紹介や、SQL Server Compact 以外の SQL Server エディションの配置方法、Azure App Service Web Apps への配置方法などを解説したチュートリアルは、「Visual Studio を使用した ASP.NET Web 配置」をご覧ください。

これらのチュートリアルでは、まず、テスト用のローカル開発コンピューター上の IIS に、次にサード パーティのホスティング プロバイダーに配置する方法について説明します。 配置するアプリケーションは、アプリケーション データベースと ASP.NET メンバーシップ データベースを使用します。 SQL Server Compact の使用を開始し、SQL Server Compact に配置します。以降のチュートリアルでは、データベースの変更を配置する方法と、SQL Server に移行する方法について説明します。

このチュートリアルでは、Visual Studio で ASP.NET を操作する方法を把握していることを前提としています。 そうでない場合は、「基本的な ASP.NET Web Forms チュートリアル」または「基本的な ASP.NET MVC チュートリアル」から開始することをお勧めします。

チュートリアルに直接関連しない質問がある場合は、ASP.NET Deployment フォーラム に投稿できます。

概要

これらのチュートリアルでは、まず、テスト用のローカル開発コンピューター上の IIS に、次にサード パーティのホスティング プロバイダーに配置する方法について説明します。 配置するアプリケーションは、アプリケーション データベースと ASP.NET メンバーシップ データベースを使用します。 SQL Server Compact の使用を開始し、SQL Server Compact に配置します。以降のチュートリアルでは、データベースの変更を配置する方法と、SQL Server に移行する方法について説明します。

チュートリアルの数 (全 11 ページとトラブルシューティングのページ) のため、配置プロセスが困難に見えるかもしれません。 実際は、サイトを配置するための基本的な手順は、チュートリアル セットの比較的小さな部分を構成しています。 ただし、実際の状況では、多くの場合、配置の小さいが重要な追加の側面 (ターゲット サーバーでのフォルダーのアクセス許可設定など) に関する情報が必要です。 実際のアプリケーションの正常な配置を妨げる可能性のある情報がチュートリアルから漏れないように、これらの追加の手法の多くをチュートリアルに含めました。

チュートリアルは順番に実行するように設計されており、各パートは前のパートに基づいて構築されています。 ただし、ご自分の状況に関係のない部分はスキップできます。 (パーツをスキップすると、後のチュートリアルで手順の調整が必要になる場合があります)。

対象読者

このチュートリアルは、小規模な組織やその他の次に示すような環境で作業する ASP.NET 開発者を対象としています。

  • 継続的インテグレーション プロセス (自動ビルドと配置) が使用されていない。
  • 運用環境がサード パーティのホスティング プロバイダーである。
  • 通常、1 人で複数の役割を果たしている (同じユーザーが開発、テスト、配置を行う)。

エンタープライズ環境では、継続的インテグレーション プロセスを実装する方が一般的であり、運用環境は、通常、会社所有のサーバーによってホストされます。 また、通常は、さまざまなユーザーが異なる役割を担当します。 エンタープライズ配置の詳細については、エンタープライズ シナリオでの Web アプリの配置に関するページを参照してください。

すべてのサイズの組織は、Web アプリを Azure にデプロイすることもできます。このチュートリアルに示されている手順のほとんどは、Azure App Services Web Apps にも適用されます。 Azure の概要については、https://azure.microsoft.com を参照してください。

チュートリアルに示されているホスティング プロバイダー

このチュートリアルでは、ホスティング会社にアカウントを設定し、そのホスティング プロバイダーにアプリケーションを配置するプロセスについて説明します。 チュートリアルでライブ Web サイトへの配置のエクスペリエンス全体を示すことができるように、特定のホスティング会社を選びました。 ホスティング会社ごとに異なる機能が用意されており、サーバーに配置するエクスペリエンスは多少異なります。ただし、このチュートリアルで説明するプロセス全体は一般的なものです。

このチュートリアルで使用するホスティング プロバイダー Cytanium.com は、利用できる数多くのプロバイダーの 1 つであり、このチュートリアルで使用したからといって、承認したり推奨したりしているわけではありません。

Web サイト プロジェクトの配置

Contoso University は、Visual Studio Web アプリ プロジェクトです。 このチュートリアルで示す配置方法とツールのほとんどは、Web サイト プロジェクトには適用されません。 Web サイト プロジェクトを配置する方法については、ASP.NET の配置コンテンツ マップに関するページを参照してください。

ASP.NET MVC プロジェクトの配置

このチュートリアルでは、ASP.NET Web Forms プロジェクトを配置しますが、学ぶ方法はすべて、ASP.NET MVC にも適用できます。 Visual Studio MVC プロジェクトは、Web アプリ プロジェクトのもう 1 つの形式にすぎません。 唯一の違いは、ASP.NET MVC またはそのターゲット バージョンをサポートしていないホスティング プロバイダーに配置する場合、プロジェクトに適切な (MVC 3 または MVC 4) NuGet パッケージがインストールされていることを確認する必要があることです。

プログラミング言語

サンプル アプリケーションでは C# を使用しますが、チュートリアルでは C# に関する知識は必要ありません。また、チュートリアルで示されている配置手法は言語固有のものではありません。

このチュートリアルのトラブルシューティング

配置中にエラーが発生した場合、または配置されたサイトが正しく実行されない場合、エラー メッセージにより必ずしも解決策が提供されるとは限りません。 一般的な問題のシナリオを解決するにはトラブルシューティングのリファレンス ページ を利用できます。 チュートリアルを進めていて、エラー メッセージが表示される場合や、うまくいかない場合は、必ずトラブルシューティング ページをご確認ください。

コメントをお寄せください

チュートリアルに関するコメントをお待ちしています。チュートリアルが更新される際には、チュートリアルのコメントで提供された修正や改善の提案を考慮するよう最大限努めます。

前提条件

開始する前に、Windows 7 以降と次のいずれかの製品がコンピューターにインストールされていることを確認してください。

Visual Studio 2010 SP1 または Visual Web Developer Express 2010 SP1 をお使いの場合は、次の製品もインストールしてください。

チュートリアルを完了するには他のソフトウェアが必要ですが、まだ読み込む必要はありません。 このチュートリアルでは、必要なときにインストールする手順について説明します。

サンプル アプリケーションのダウンロード

配置するアプリケーションは Contoso University という名前で、既に自動的に作成されています。 これは、「ASP.NET サイトの Entity Framework チュートリアル」で説明されている Contoso University アプリケーションに大まかに基づいた、大学の Web サイトの簡略版です。

前提条件のインストールが完了したら、Contoso University Web アプリをダウンロードします。 .zip ファイルには、プロジェクトの複数のバージョンと、12 個のチュートリアルをすべて含む PDF ファイルが含まれています。 チュートリアルの手順を実行するには、ContosoUniversity-Begin から始めます。 チュートリアル終了時のプロジェクトの様子を見るには、ContosoUniversity-End を開きます。 チュートリアル 10 で完全な SQL Server に移行する前のプロジェクトの外観を確認するには、ContosoUniversity-AfterTutorial09 を開きます。

チュートリアルの手順を実行する準備をするには、Visual Studio プロジェクトの操作に使用するフォルダーに ContosoUniversity-Begin を保存します。 既定では、次のフォルダーです。

C:\Users\<username>\Documents\Visual Studio 2012\Projects

(このチュートリアルのスクリーン ショットでは、プロジェクト フォルダーは C: ドライブのルート ディレクトリにあります。)

Visual Studio を起動し、プロジェクトを開き、Ctrl と F5 キーを押して実行します。

Home_page

Web サイト ページにはメニュー バーからアクセスでき、次の機能を実行できます。

  • 学生の統計情報を表示します ([バージョン情報] ページ)。
  • 学生を表示、編集、削除、追加します。
  • コースを表示および編集します。
  • 指導者を表示および編集します。
  • 学部を表示および編集します。

いくつかの代表的なページのスクリーン ショットを次に示します。

Students_Page

Add_Students_Page

配置に影響するアプリケーション機能の確認

次に示すアプリケーションの機能は、アプリケーションの配置方法、または配置に必要な操作に影響します。 それぞれの詳細については、シリーズの次のチュートリアルで説明します。

  • Contoso University では、SQL Server Compact データベースを使用して、学生や指導者の名前などのアプリケーション データを格納します。 データベースにはテスト データと運用データが混在しており、運用環境に配置する場合は、テスト データを除外する必要があります。 チュートリアル シリーズの後半では、SQL Server Compact から SQL Server に移行します。
  • アプリケーションは、ASP.NET メンバーシップ システムを使用し、ユーザー アカウント情報を SQL Server Compact データベースに格納します。 アプリケーションは、制限された情報にアクセスできる管理者ユーザーを定義します。 メンバーシップ データベースは、テストアカウントを使用せずに、1 つの管理者アカウントで配置する必要があります。
  • アプリケーション データベースとメンバーシップ データベースでは、データベース エンジンとして SQL Server Compact が使用されるため、ホスティング プロバイダーとデータベース自体にもデータベース エンジンを配置する必要があります。
  • アプリケーションは ASP.NET ユニバーサル メンバーシップ プロバイダーを使用して、メンバーシップ システムがそのデータを SQL Server Compact データベースに格納できるようにします。 ユニバーサル メンバーシップ プロバイダーを含むアセンブリは、アプリケーションと共に配置する必要があります。
  • アプリケーションは Entity Framework 5.0 を使用して、アプリケーション データベース内のデータにアクセスします。 Entity Framework 5.0 を含むアセンブリは、アプリケーションと共に配置する必要があります。
  • アプリケーションでは、サードパーティのエラー ログとレポート ユーティリティを使用します。 このユーティリティは、アプリケーションと共に配置する必要があるアセンブリで提供されます。
  • エラー ログ ユーティリティは、XML ファイル内のエラー情報をファイル フォルダーに書き込みます。 配置されたサイトで ASP.NET を実行するアカウントに、このフォルダーへの書き込みアクセス許可があることを確認し、このフォルダーを配置から除外する必要があります。 (そうしないと、テスト環境のエラー ログ データが運用環境に配置されたり、運用環境のエラー ログ ファイルが削除されたりする場合があります。)
  • アプリケーションには、配置先の環境 (テストまたは運用) に応じて、配置された Web.config ファイルで変更する必要がある設定と、ビルド構成 (デバッグまたはリリース) に応じて変更する必要があるその他の設定が含まれています。
  • Visual Studio ソリューションには、クラス ライブラリ プロジェクトが含まれています。 プロジェクト自体ではなく、このプロジェクトによって生成されるアセンブリのみを配置する必要があります。

このシリーズの最初のチュートリアルでは、サンプルの Visual Studio プロジェクトをダウンロードし、アプリケーションの配置方法に影響するサイト機能を確認しました。 以降のチュートリアルでは、このうち一部を自動的に処理されるように設定することで、配置の準備をします。 その他の処理は手動で行います。