Visual Studio から Azure クラウド サービスへの Web アプリケーションの移行および発行を行う
Note
この記事は Azure Cloud Services (クラシック) に適用されます。これは新規のお客様向けには非推奨となっており、2024 年 8 月 31 日に廃止されます。 このテクノロジを使用して構築された既存のサービスは、引き続き Azure Cloud Services (延長サポート) を通じてサポートされます。 新しい開発では、Azure App Service、Azure Functions、Azure Container Apps など、特定の目的に合わせて設計された新しいサービスの種類を使用することをお勧めします。 利用可能なサービスの最新の一覧については、「Azure 製品のディレクトリ」を参照してください。
Azure のホスティング サービスとスケーラビリティを利用するには、Web アプリケーションを Azure クラウド サービスに 移行してデプロイします。 変更は最小限ですみます。 この記事ではクラウド サービスへのデプロイのみを説明します。App Service については、Azure App Service での Web アプリのデプロイに関する記事をご覧ください。
重要
この移行は特定の ASP.NET、WCF、および WCF ワークフロー プロジェクトでのみサポートされます。 ASP.NET Core プロジェクトではサポートされません。 「サポートされているプロジェクト テンプレート」のセクションをご覧ください。
前提条件
- Azure アカウント。 Azure アカウントがない場合は、Visual Studio サブスクライバー向けの Azure の特典を有効にするか、無料試用版にサインアップします。
クラウド サービスにプロジェクトを移行する
ソリューション ノードを右クリックし、[追加] > [新しいプロジェクト] の順に選択して、既存のソリューションに新しい Azure クラウド サービス (クラシック) プロジェクトを追加します。
[新しい Microsoft Azure クラウド サービス (クラシック)] ダイアログで、プロジェクトにロールを追加せずに [OK] をクリックします。
新しく追加したクラウド サービス プロジェクトの下でロール ノードを右クリックし、[Add Web Role Project in solution...]\(ソリューションに Web ロール プロジェクトを追加する\) を選択します。
[ロール プロジェクトとの関連付け] ダイアログで、Web ロールとして関連付けるプロジェクトを選択します。
重要
この Web アプリケーションに必要な他のアセンブリまたはファイルがある場合は、それらのファイルのプロパティを手動で設定する必要があります。 これらのプロパティを設定する方法については、「Include Files in the Service Package (サービス パッケージにファイルを取り込む)」をご覧ください。
エラーと警告
警告またはエラーが発生する場合は、Azure にデプロイする前に解決すべき問題 (アセンブリの不足など) があることを示しています。
アプリケーションをビルドして、計算エミュレーターを使用してローカルで実行したり、Azure に発行したりする場合、次のエラーが表示される場合があります。"指定されたパス、ファイル名、またはその両方が長すぎます"。このエラーは、完全修飾された Azure プロジェクト名の長さが 146 文字を超えていることを示しています。 この問題を修正するには、パスが短くなるように別のフォルダーにソリューションを移動します。
警告をエラーとして処理する方法の詳細については、「 Visual Studio を使用した Azure クラウド サービス プロジェクトの構成」を参照してください。
移行をローカルでテストする
- Visual Studio のソリューション エクスプローラーで、追加されたクラウド サービス プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] を選択します。
- [デバッグ] > [デバッグの開始] (F5 キー) を選択して Azure デバッグ環境を起動します。 この環境では、特にさまざまな Azure サービスのエミュレーションを利用できます。
アプリケーションでの Azure SQL データベースの使用
お使いの Web アプリケーションにオンプレミスの SQL Server データベースを使用する接続文字列がある場合、その代わりとして Azure SQL Database にデータベースを移行し、接続文字列を更新する必要があります。 このプロセスのガイダンスについては、次のトピックをご覧ください。
- SQL Server データベースのクラウド内の SQL Database への移行
- .NET (C#) と Visual Studio で Azure SQL データベースに接続してデータベースに照会する。
アプリケーションを Azure クラウド サービスに発行する
Visual Studio からの Azure アプリケーションの発行またはデプロイの準備で説明しているように、必要なクラウド サービスとストレージ アカウントを Azure サブスクリプションで作成します。
Visual Studio でアプリケーション プロジェクトを右クリックし、[Microsoft Azure に公開...] を選択します ([発行...] コマンドではありません)。
表示される [Azure アプリケーションの発行] で、アカウントを使用して Azure サブスクリプションにサインインし、[次へ]> を選択します。
[設定] > [共通設定] タブで、対象のクラウド サービスおよび環境と構成を [クラウド サービス] ドロップダウン リストから選択します。
[設定] > [詳細設定] の順に移動し、使用するストレージ アカウントを選択してから [次へ]> を選択します。
[診断] で、Application Insights に情報を送信するかどうかを選択します。
[次へ]> を選択して概要を表示し、[発行] を選択してデプロイを開始します。
Visual Studio でアクティビティ ログ ウィンドウが開かれ、進行状況を追跡できます。
(省略可能) デプロイ プロセスをキャンセルするには、アクティビティ ログの行項目を右クリックし、[取り消して削除] を選択します。 このコマンドによりデプロイ プロセスが停止し、Azure からデプロイ環境が削除されます。 注: このデプロイ環境をデプロイ後に削除するには、Azure Portal を使用する必要があります。
デプロイ後にアプリケーションにアクセスするには、[Azure の活動ログ] に [完了] の状態と URL が表示されているときに、デプロイの横の矢印を選択します。 Azure から特定の種類の Web アプリケーションを起動する方法の詳細については、次の表をご覧ください。
コンピューティング エミュレーターを使用して Azure でアプリケーションを起動する
[デバッグ] > [デバッグの開始] (F5 キー) を選択すると、Visual Studio デバッガーに接続されているブラウザーでアプリケーションのすべての種類を起動できます。 空の ASP.NET Web アプリケーション プロジェクトでは、まずアプリケーションに .aspx
ページを追加し、Web プロジェクトのスタート ページとして設定する必要があります。
次の表に、Azure でアプリケーションを起動する方法の詳細を示します。
Web アプリケーションの種類 | Azure での実行 |
---|---|
ASP.NET Web アプリケーション (Model-View-Controller (MVC) 2、MVC 3、MVC 4 を含む) |
[デプロイ] タブで [Azure の活動ログ] の URL を選択します。 |
空の ASP.NET Web アプリケーション | アプリケーションの既定の .aspx ページがある場合は、[デプロイ] タブで [Azure の活動ログ] の URL を選択します。 別のページに移動するには、ブラウザーに <deployment_url>/<page_name>.aspx の形式で URL を入力します。 |
WCF サービス アプリケーション WCF ワークフロー サービス アプリケーション |
.svc ファイルを WCF サービス プロジェクトのスタート ページに設定します。 次に、<deployment_url>/<service_file>.svc に移動します。 |
ASP.NET 動的エンティティ ASP.NET 動的データ LINQ to SQL |
接続文字列を更新します (次のセクションで説明します)。 次に、<deployment_url>/<page_name>.aspx に移動します。 LINQ to SQL については、Azure SQL データベースを使用する必要があります。 |
ASP.NET 動的エンティティの接続文字列の更新
(#use-an-azuresql-database-for-your-application) で前述したように、ASP.NET 動的エンティティ Web アプリケーション用の SQL Azure データベースを作成します。
Azure Portal から、このデータベースに必要なテーブルとフィールドを追加します。
web.config
ファイルで次の形式の接続文字列を指定し、ファイルを保存します。<add name="tempdbEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=<server name>\SQLEXPRESS;initial catalog=<database name>;integrated security=True;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient"/>
Azure SQL データベースの ADO.NET 接続文字列の connectionString 値を次のように更新します。
<add name="tempdbEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="Server=tcp:<SQL Azure server name>.database.windows.net,1433;Database=<database name>;User ID=<user name>;Password=<password>;Trusted_Connection=False;Encrypt=True;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient"/>
サポートされているプロジェクト テンプレート
クラウド サービスに移行および発行できるアプリケーションは、次の表にあるテンプレートのいずれかを使用している必要があります。 ASP.NET Core はサポートされていません。
テンプレート グループ | プロジェクト テンプレート |
---|---|
Web | ASP.NET Web アプリケーション (.NET Framework) |
Web | ASP.NET MVC 2 Web アプリケーション |
Web | ASP.NET MVC 3 Web アプリケーション |
Web | ASP.NET MVC 4 Web アプリケーション |
Web | 空の ASP.NET Web アプリケーション (またはサイト) |
Web | 空の ASP.NET MVC 2 Web アプリケーション |
Web | ASP.NET 動的データ エンティティ Web アプリケーション |
Web | ASP.NET 動的データ LINQ to SQL Web アプリケーション |
WCF | WCF サービス アプリケーション |
WCF | WCF ワークフロー サービス アプリケーション |
Workflow | WCF ワークフロー サービス アプリケーション |
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示