エクスポート (0) 印刷
すべて展開

チュートリアル:Azure で仮想ネットワークを使用して ASP.NET アプリケーションを SQL Server に接続する

更新日: 2014年2月

Azure クラウド サービス (Platform-as-a-Service) と Azure の仮想マシン (Infrastructure-as-a-Service) の両方を使用したアプリケーションの構築は、大半の組織にとって重要な概念です。Azure の仮想マシンでは、仮想マシンをデプロイして管理することで、既存のサーバー ワークロードおよびアプリケーションを Azure に移行できます。Azure クラウド サービスでは、Web ロールとワーカー ロールで構成されたクラウド サービス (ホステッド サービス) をデプロイすることで、Azure で多層アプリケーションを構築し、実行できます。

このチュートリアルでは、Azure 仮想ネットワークを経由して Azure の仮想マシンの SQL Server に ASP.NET アプリケーション (クラウド サービスおよび Web ロール) を接続する方法について説明します。Azure で仮想マシンを作成すると、ポータルで仮想ネットワーク設定を指定できます。クラウド サービスに対しては、サービス構成ファイルを使用し、Azure の特定の仮想ネットワークにクラウド サービスをデプロイする必要があります。

このチュートリアルでは、次の内容を学習します。

  1. このチュートリアルを実行するには、Visual Studio をローカル コンピューターにインストールします。

  2. さらに、Azure SDK for the .NET Framework をインストールします。

    • Azure SDK for .NET をインストールするには、Azure のダウンロード リンクをクリックします。使用している Visual Studio のバージョンに対応するバージョンを選択します。

      Azure SDK for Visual Studio 2013

      Azure SDK for Visual Studio 2012

    • VWDOrVs2013AzurePack.2E2.2E2.exe または VWDOrVs11AzurePack.2E2.2E2.exe の実行または保存を求められた場合は、[実行] をクリックします。

    • [Web Platform Installer] ウィンドウで、[インストール] をクリックしてインストールを続行します。

  3. (省略可能) このチュートリアルをローカルのオンプレミス開発環境でテストする場合は、SQL Server をローカル コンピューターにもインストールする必要があります。

このチュートリアルの目的は、クラウド内に専用のプライベート仮想ネットワークを作成することです。これにより、仮想マシンの内部 IP アドレス (DIP ダイレクト IP) が永続化され、仮想マシンを再起動しても変更されなくなります。次の手順では、管理ポータルでサブスクリプションの新しい仮想ネットワークを作成する方法を示します。

  1. 左側のナビゲーション ウィンドウで、[ネットワーク] をクリックし、最下部のパネルで [新規] をクリックします。次に、[仮想ネットワーク] をクリックし、[カスタム作成] をクリックします。

  2. [仮想ネットワークの詳細] ウィンドウで、[名前] ボックスに「TestVirtualNetwork」と入力します。[地域] をクリックします。[新しいアフィニティ グループの作成] をクリックします。[アフィニティ グループ名] フィールドに「TestAffinityGroup」と入力します。矢印をクリックして次へ進みます。

    アフィニティ グループを作成すると、そのアフィニティ グループに属するすべてのサービスを 1 つのデータ センター内で可能な限り近い場所に保持できるようになります。これにより遅延時間が短縮されパフォーマンスが向上するため、コストの低減につながることがあります。仮想ネットワークを作成するときは、以前に作成したアフィニティ グループを使用することも、新しいグループを作成することもできます。新しい仮想ネットワークで既存のアフィニティ グループを使用する場合は、アフィニティ グループ内の以前にデプロイしたクラウド サービスは、新しい仮想ネットワークにデプロイする他のクラウド サービスにできるだけ近い場所で実行されるように自動的に指定されます。

  3. [DNS サーバーおよび VPN 接続] ダイアログ ウィンドウで、使用する DNS サーバー名と IP アドレスを、「TestDNSServer」および「10.1.0.4」のように入力します。ポイント対サイト接続またはサイト間接続のチェック ボックスをオンにしないでください。このチュートリアルでは、Azure 内でプライベート仮想ネットワークを作成しますが、このネットワークはクロスプレミス接続用にデザインされたものではありません。

  4. [仮想ネットワーク アドレス空間] ダイアログ ウィンドウで、新しい仮想ネットワークおよびサブネットのプライベート アドレス空間を作成できます。アドレス空間は、RFC 1918 で定義されたプライベート アドレスの範囲 (CIDR 表記では 10.0.0.0/8、172.16.0.0/12、または 192.168.0.0/16) 内にあることが必要です。[アドレス空間] で、[開始 IP] として「10.4.0.0」、[CIDR] として「/16」を入力します。仮想ネットワークにデプロイすると、常にこのアドレス空間から IP アドレスが付与されることに注意してください。[Subnet-1] を「FrontEndSubnet」に変更して、[開始 IP] を「10.4.2.0/24」に設定し、[サブネットの追加] をクリックします。右下にあるチェックマークをクリックし、仮想ネットワークを作成します。

    仮想ネットワークのアドレス空間内に複数のサブネットを作成できます。サブネットを作成すると、クラウド サービスに割り当てられているアドレスと、仮想ネットワークにデプロイされている仮想マシンをより細かく制御できます。Azure プラットフォーム向けに複雑なアプリケーションを作成する場合は、同じ仮想ネットワーク内に複数のサブネット (インターネット インフォメーション サービス (IIS) 仮想マシン用のサブネットや SQL Server 仮想マシン用のサブネットなど) を作成することをお勧めします。

    サブネットの IP アドレスが仮想ネットワーク内で重複できないことに注意してください。

  5. 仮想ネットワークがデプロイされた後は DNS サーバーを変更できません。したがって、DNS サービスを慎重に計画することは非常に重要です。この計画に役立つ情報については、「Azure 名前解決の概要」を参照してください。

    仮想ネットワークが構成された後で、仮想マシンまたはクラウド サービスをデプロイできます。仮想ネットワークを設定する方法の詳細については、MSDN ライブラリの「管理ポータルでの仮想ネットワークの構成について」を参照してください。Azure のネットワークの追加情報および使用シナリオについては、MSDN ライブラリの「Azure 仮想ネットワーク」および「Azure の仮想マシンの概要」を参照してください。

Azure では、データベースは、SQL Server インスタンスが実行されている仮想マシンのローカル ディスクに格納されるように見えます。バックグラウンドで、それらの各ディスクは Azure BLOB に書き込まれます。Azure では、ストレージ アカウントがディスクのコンテナーとして使用されます。次の手順では、管理ポータルで新しいストレージ アカウントを作成する方法を示します。

  1. Azure 管理ポータルで仮想ネットワークを作成した後で、左側の [ストレージ] をクリックし、画面の左隅で [+新規] をクリックします。

  2. [データ サービス][ストレージ][簡易作成] の順にクリックします。

  3. [URL] ボックスに「teststorageaccount4u」と入力し、作成したアフィニティ グループを選択します。[レプリケーション] で、ストレージ アカウントで使用するレプリケーションのレベルを選択できます。このチュートリアルでは、[ローカル冗長] を選択します。次に、[ストレージ アカウントの作成] チェック ボックスをオンにします。

Azure ストレージ アカウントの詳細については、「ストレージ アカウントとは」を参照してください。

このチュートリアルの目標は、Azure 仮想ネットワークを経由して Azure の仮想マシンの SQL Server に ASP.NET アプリケーション (Web ロール) を接続する方法を示すことです。このセクションでは、指定したアフィニティ グループおよび仮想ネットワークで SQL Server 仮想マシンを作成および構成する方法を示します。

  1. Azure 管理ポータルで、Web ページの左下にある [+新規] をクリックし、[計算][バーチャル マシン][ギャラリーから] の順にクリックします。

  2. SQL Server を含む仮想マシン イメージを選択し、ページの右下にある次へ進む矢印をクリックします。

  3. [仮想マシン構成] ページで、次の情報を入力します。

    • [バージョンのリリース日] で、イメージの複数のバージョンが使用可能な場合は、希望のバージョンを選択します。

    • [仮想マシン名] に「SQLVM」と入力します。Azure ポータルでは、仮想マシン名をクリックして、ダッシュボードを開くと、ホスト名として仮想マシン名が表示されます。

    • [サイズ] ボックスの一覧で、適切なサイズを選択します。

    • [新しいユーザー名] ボックスに、ローカル管理者として一意のユーザー名を入力します。

    • [新しいパスワード] ボックスに、強力なパスワードを入力します。

    • [パスワードの確認] ボックスに、パスワードを再度入力します。

  4. [仮想マシン構成] ページで、次の情報を入力します。

    • [スタンドアロンの仮想マシン] を選択します。

    • [クラウド サービス DNS 名] ボックスに、目的の DNS 名の最初の部分を入力すると、SQLVM2013.cloudapp.net という形式の完全な名前が入力されます。

    • [地域/アフィニティ グループ/仮想ネットワーク] ボックスで、この仮想イメージをホストする仮想ネットワークを選択します。このチュートリアルでは、作成した [TestVirtualNetwork] をクリックします。

    • [ストレージ アカウント] ボックスで、作成したストレージ アカウント [teststorageaccount4u] を選択します。

    • 前の手順で仮想ネットワーク [TestVirtualNetwork] を選択した場合は、この仮想ネットワークに関連付けられた最初のサブネットが [仮想ネットワーク サブネット] ボックスに既定で表示されます。仮想ネットワークのサブネットをまだ作成していない場合は、[仮想ネットワーク サブネット] ボックスが画面に表示されます。それ以外の場合は、作成したサブネット [TestSubnet] をクリックします。

    • [可用性セット] ボックスで [(なし)] を選択します。

    • 矢印をクリックして次へ進みます。

    • 次に、リモート デスクトップや Secure Shell (SSH) のようなクライアントを通じて仮想マシンに接続する目的で作成される新しいエンドポイントについて確認します。今すぐにエンドポイントを追加することも、後で作成することもできます。後でエンドポイントを作成する場合は、「仮想マシンとの通信を設定する方法」を参照してください。

    • 法律条項を読み、同意します。

    • 続行するには、右下隅にあるチェック マークをクリックします。

  5. Azure により、仮想マシンが作成され、オペレーティング システムの設定が構成されます。プロビジョニング プロセスには数分かかる場合があります。仮想マシンのプロビジョニングが完了すると、Azure 管理ポータルに [実行中] として一覧表示されます。[停止] と表示されている場合は、[開始] をクリックします。仮想マシンを作成すると、クラウド サービスが作成されます。最初の仮想マシンを格納するために作成されたクラウド サービスは、追加の仮想マシンを最初の仮想マシンに接続するまで、管理ポータルに表示されません。Azure では、[仮想マシン モード] ページで入力した DNS 名を使用して、この新しいクラウド サービスの名前が定義されます。

  6. Azure 管理ポータルで、作成した仮想マシン名である [SQLVM] をクリックしてダッシュボードを開きます。

  7. 仮想マシンの [内部 IP アドレス] をメモしてください。これは、後で接続文字列で使用します。

  8. メニュー下部の [接続] をクリックし、リモート デスクトップ (RDP) を使用して仮想マシンにログインします。ログインするには、管理者資格情報を使用します。

  9. この仮想マシンに初めてログオンする場合は、デスクトップのセットアップや Windows の更新プログラムの適用、Windows の初期構成タスク (sysprep) の完了など複数のプロセスを必要に応じて完了する必要があります。Windows sysprep の完了後、SQL Server セットアップによって構成タスクが完了されます。Windows リモート デスクトップを使用して仮想マシンに接続した場合、仮想マシンは他のコンピューターと同様に動作します。仮想マシンで実行中の SQL Server Management Studio を使用して、SQL Server の既定のインスタンスに通常の方法で接続できます。

  10. 次に、TCP プロトコルでリッスンするように SQL Server を構成する必要があります。そのためには、[スタート] ボタン、[すべてのプログラム]、[Microsoft SQL Server]、[構成ツール] の順にクリックし、[SQL Server 構成マネージャー] を開きます。[スタート] ボタン、[すべてのプログラム]、[Microsoft SQL Server] で選択する SQL Server のバージョンは、仮想マシンを作成したときに選択したバージョンと同じである必要があります。

  11. SQL Server 構成マネージャーのコンソール ペインで、[SQL Server ネットワークの構成] を展開します。

  12. [<インスタンス名> のプロトコル] をクリックします (既定のインスタンスでは、[MSSQLSERVER のプロトコル] です)。

  13. 詳細ペインで、[TCP] を右クリックします。ギャラリー イメージの場合は、既定で [有効] になっています。カスタム イメージの場合は、[有効化] をクリックします (状態が [無効] の場合)。

  14. コンソール ペインで、[SQL Server のサービス] をクリックします。

  15. 詳細ペインで [SQL Server (<インスタンス名>)] (既定のインスタンスでは、[SQL Server (MSSQLSERVER)]) を右クリックし、[再起動] をクリックして、SQL Server のインスタンスを停止し、再起動します。

  16. 次に、データベース エンジンの既定のインスタンス用に、Windows ファイアウォールで TCP ポートを開く必要があります。そのためには、[スタート] ボタン、[すべてのプログラム]、[管理ツール] の順にクリックし、[セキュリティが強化された Windows ファイアウォール] を開きます。

  17. [セキュリティが強化された Windows ファイアウォール] の左ペインで、[受信の規則] を右クリックし、アクション ペインの [新規の規則] をクリックします。

  18. [規則の種類] ダイアログ ボックスで、[ポート] をクリックし、[次へ] をクリックします。

  19. [プロトコルおよびポート] ダイアログ ボックスで、[TCP] をクリックします。[特定のローカル ポート] をクリックし、データベース エンジンのインスタンスのポート番号を入力します (既定のインスタンスの場合は「1433」と入力します)。[次へ] をクリックします。

  20. [アクション] ダイアログ ボックスで、[接続を許可する] をクリックし、[次へ] をクリックします。

  21. [プロファイル] ダイアログ ボックスで、[ドメイン][プライベート][パブリック] をクリックし、[次へ] をクリックします。

  22. [名前] ページで、受信の規則の名前を SQLServerVM1Port に設定し、[完了] をクリックします。[セキュリティが強化された Windows ファイアウォール] ウィンドウを閉じます。

  23. 次に、混合モード認証用に SQL Server を構成する必要があります。ドメイン環境がない場合、SQL Server データベース エンジンで Windows 認証を使用することはできません。Windows 認証を使用するには、[すべてのプログラム]、[Microsoft SQL Server (バージョン)]、[SQL Server Management Studio] の順にクリックします。

  24. [サーバーへの接続] ダイアログ ボックスで、[サーバー名] に、オブジェクト エクスプローラーを使用してデータベース エンジンに接続する仮想マシンのホスト名を入力します。[Windows 認証] をクリックします。[接続] をクリックします。

  25. SQL Server Management Studio のオブジェクト エクスプローラーで、SQL Server のインスタンス名 (仮想マシン名) を右クリックし、[プロパティ] をクリックします。

  26. [セキュリティ] ページの [サーバー認証] で、[SQL Server 認証モードと Windows 認証モード] を選択し、[OK] をクリックします。

  27. オブジェクト エクスプローラーでサーバーを右クリックし、[再起動] をクリックします。

  28. 次に、別のコンピューターから最初の仮想マシンに接続するための SQL Server 認証ログインを作成する必要があります。そのためには、[SQL Server Management Studio オブジェクト エクスプローラー] で、新しいログインを作成する [SQLVM] サーバー インスタンスを展開します。[セキュリティ] フォルダーを右クリックし、[新規作成] をポイントして、[ログイン] をクリックします。

  29. [ログイン - 新規作成] ダイアログ ボックスの [全般] ページで、[ログイン名] ボックスに新しいユーザーの名前として「sqlvmlogin」と入力します。[SQL Server 認証] をクリックします。[パスワード] ボックスに、新しいユーザーのパスワードを入力します。[パスワードの確認] ボックスに、パスワードを再度入力します。他のボックスは既定値のままにします。

  30. [サーバー ロール] ページで、このログインを SQL Server 管理者として指定する場合は、[sysadmin] をクリックします。[OK] をクリックします。既定では、SQL Server 仮想マシンのセットアップ時に、Azure は Windows 認証を選択します。そのため、sa ログインは無効となり、パスワードはセットアップによって割り当てられます。sa ログインを使用するには、ログインを有効にし、新しいパスワードを割り当てます。詳細については、「サーバーの認証モードの変更」を参照してください。

  31. SQL Server Management Studio のオブジェクト エクスプローラーで、SQL Server のインスタンス名 (仮想マシン名) を右クリックし、[接続解除] をクリックします。

次に、ASP.NET アプリケーションで使用するサンプル データベースを作成します。

  1. SQL Server Management Studio のオブジェクト エクスプローラーで、[接続] をクリックし、[データベース エンジン] をクリックします。

  2. [サーバーへの接続] ダイアログ ボックスで、[サーバー名] に、データベース エンジンに接続する仮想マシンのホスト名として「SQLVM」と入力します。[SQL Server 認証] をクリックします。ログイン名として「sqlvmlogin」と入力し、前に指定したパスワードを入力します。[接続] をクリックします。

  3. SQL Server Management Studio のオブジェクト エクスプローラーで、SQL Server のインスタンス名 (仮想マシン名) を右クリックし、[新しいクエリ] を右クリックします。

  4. 次のステートメントを実行して、サンプル データベースを作成します。

    CREATE DATABASE TestDb;
    GO
    
  5. [データベース] で、新しいデータベース [TestDB] をクリックします。[TestDB] データベースを右クリックし、[新しいクエリ] ウィンドウを開きます。次のステートメントを実行して、[TestDB] データベース内に 2 行を作成します。

    CREATE TABLE Table1 (Col1 int primary key, Col2 varchar(20));
    GO
    INSERT INTO Table1 (Col1, Col2) VALUES (1, 'string1'), (2, 'string2');
    GO
    
    Warning警告
    Azure では、オペレーティング システムと SQL Server のすべてのソフトウェアが既定でオペレーティング システム ドライブ (C:\) に格納されます。パフォーマンスを高めるには、仮想マシンにデータ ディスクをアタッチして、そこにすべてのデータ ファイルおよびログ ファイルを格納することをお勧めします。また、一時的なストレージ ドライブ (D:\) には永続性がないため、データは一切保管しないことを勧めします。Azure でディスクをアタッチする方法の詳細については、「データ ディスクを仮想マシンにアタッチする方法」を参照してください。SQL Server Management Studio を使用して SQL Server の新しいデータ ファイルとログ ファイルの既定の場所を変更する方法の詳細については、「データ ファイルとログ ファイルの既定の場所の表示または変更」を参照してください。

このセクションでは、ローカルのオンプレミス コンピューターに単純な ASP.NET アプリケーションを作成し、Azure の仮想マシンの SQL Server データベース インスタンスに接続するように構成する方法を学習します。この例では、GridView コントロールを使用することで、コードを記述することなく、データベースに対してデータの挿入、更新、および削除を実行できます。

  1. Visual Studio で [ファイル] メニューの [新規作成] をクリックし、[プロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスの [インストールされているテンプレート] ボックスの一覧で、Visual C# または Visual Basic の [Azure クラウド サービス] をクリックします。

  3. 名前として「DataBinding」と入力し、[OK] をクリックします。

  4. [新しい Azure クラウド サービス] ダイアログ ボックスで、[.NET Framework ロール] ボックスの一覧の [ASP.NET Web ロール] をクリックし、矢印ボタンをクリックして [Azure クラウド サービス ソリューション] ボックスの一覧に追加します。[OK] をクリックします。Visual Studio 2013 で [WebRole] に対応する [新しい ASP.NET プロジェクト] をクリックし、[Web フォーム] をクリックします。[OK] をクリックします。

  5. Default.aspx で、[デザイン] をクリックしてデザイン ビューに切り替えます。

  6. ツールボックスの [データ] からデザイン画面に、GridView コントロールをドラッグします。

  7. GridView[プロパティ] ウィンドウで、AutoGenerateDeleteButton および AutoGenerateEditButtontrue を設定します。

  1. ソリューション エクスプローラーで、Web ロール プロジェクト内の Web.config をダブルクリックします。

  2. Web.config で、次のように既存の connectionStrings タグを置き換え、必要に応じて変更します。

    <connectionStrings>
        <add name="SQLServerinWAConnection" 
        connectionString="Data Source=tcp:SQLVMInternalIPAddress;Initial Catalog=TestDb;User ID=sqlvmlogin;Password=yourpassword;Encrypt=true;Trusted_Connection=false;TrustServerCertificate=true"
        providerName="System.Data.SqlClient" />
    </connectionStrings>
    
    TrustServerCertificatetrue に設定されている場合は、トランスポート層で SSL を使用してチャネルを暗号化し、証明書チェーンで信頼性を検証する処理をバイパスするように要求します。詳細については、「SQL Server への接続の暗号化」を参照してください。

    Warning警告
    新しい仮想マシンの内部 IP アドレスを指定して、tcp:SQLVMInternalIPAdress を更新してください (たとえば、tcp:10.4.2.4)。さらに、パスワードを、前にログイン sqlvmlogin で指定したパスワードに更新してください。

    Azure プロジェクトを仮想ネットワークにデプロイする場合は、インスタンス間で名前解決を処理する必要はありません。つまり、同じ仮想ネットワークの仮想マシンで実行されている SQL Server に接続する Web ロールをデプロイするには、web.config ファイルで SQL サーバーの IP アドレスを指定する必要があります。SQL Server 仮想マシンを最初に作成し、Web アプリケーションの仮想マシンの内部 IP アドレスを取得できるようにすることをお勧めします。

  3. 仮想マシンの IP アドレスを取得するには、管理ポータルにログインします。[仮想マシン] をクリックします。新しい仮想マシン SQLVM をクリックし、ダッシュボードを開きます。上記のように、内部 IP アドレスを web.config ファイルにコピーします。

  4. Default.aspx で、[ソース] をクリックしてソース ビューに切り替えます。

  5. BodyContent ソース ファイルの Default.aspx タグで、次のマークアップを追加して、接続用の SqlDataSource コントロールを作成します。

    <asp:SqlDataSource ID="SQLServerDataSource" runat="server" 
       ConnectionString="<%$ ConnectionStrings: SQLServerinWAConnection %>" 
       InsertCommand="INSERT INTO [Table1] ([Col1], [Col2]) VALUES (@Col1, @Col2)" 
       SelectCommand="SELECT * FROM [Table1]" 
       UpdateCommand="UPDATE [Table1] SET [Col2] = @Col2 WHERE [Col1] = @Col1"
       DeleteCommand="DELETE FROM [Table1] WHERE [Col1] = @Col1">
       <UpdateParameters>
          <asp:Parameter Name="Col2" Type="String" />
          <asp:Parameter Name="Col1" Type="Int32" />
       </UpdateParameters>
       <InsertParameters>
          <asp:formParameter Name="Col1" FormField="TextBox1" />
          <asp:formParameter Name="Col2" FormField="TextBox2" />
       </InsertParameters>
       <DeleteParameters>
          <asp:Parameter Name="Col1" Type="Int32" />
       </DeleteParameters>
    </asp:SqlDataSource>
    
    これには、コントロールの SELECTINSERTUPDATE、および DELETE の論理が含まれます。

  6. Default.aspx で、Design モードに切り替えます。最近追加した GridView コントロールをクリックします。GridView コントロールの [プロパティ] ウィンドウで、次の属性を GridView コントロールのマークアップに追加します:DataSourceID="SQLServerDataSource" および DataKeyNames="Col1"

  7. 開発者は、アプリケーションの要件に基づいて ASP.NET ページを自由に設計できます。このチュートリアルで Visual Studio 2013 を使用する場合は、Default.aspx ソースを次のように変更することができます。

    <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebRole1._Default" %>
    
    <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    
        <div class="jumbotron">
            <h1>ASP.NET</h1>
            <p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS, and JavaScript.</p>
            <p><a href="http://www.asp.net" class="btn btn-primary btn-large">Learn more &raquo;</a></p>
        </div>
    
        <div class="row">
            <div class="col-md-4">
                <h2>Getting started                
                </h2>
                <p>
                    ASP.NET Web Forms lets you build dynamic websites using a familiar drag-and-drop, event-driven model.
                A design surface and hundreds of controls and components let you rapidly build sophisticated, powerful UI-driven sites with data access.
                </p>
                <asp:GridView ID="GridView2" runat="server" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" DataKeyNames="Col1" DataSourceID="SQLServerDataSource">
                    </asp:GridView>
                
                <asp:SqlDataSource ID="SQLServerDataSource" runat="server" 
                    ConnectionString="<%$ ConnectionStrings: SQLServerinWAConnection %>" 
                    InsertCommand="INSERT INTO [Table1] ([Col1], [Col2]) VALUES (@Col1, @Col2)" 
                    SelectCommand="SELECT * FROM [Table1]" 
                    UpdateCommand="UPDATE [Table1] SET [Col2] = @Col2 WHERE [Col1] = @Col1"
                    DeleteCommand="DELETE FROM [Table1] WHERE [Col1] = @Col1">
                <UpdateParameters>
                    <asp:Parameter Name="Col2" Type="String" />
                    <asp:Parameter Name="Col1" Type="Int32" />
                </UpdateParameters>
                <InsertParameters>
                    <asp:formParameter Name="Col1" FormField="TextBox1" />
                    <asp:formParameter Name="Col2" FormField="TextBox2" />
                </InsertParameters>
                <DeleteParameters>
                    <asp:Parameter Name="Col1" Type="Int32" />
                </DeleteParameters>
    </asp:SqlDataSource>
            </div>
                 
        </div>
        </asp:Content>
    
    
    
  8. Web.config ファイルで、<compilation> タグ内の <system.web> タグの直後に次のタグを追加します。

    <customErrors mode="Off"/>
    
    これにより、このアプリケーションを実行する間にエラー メッセージのスタック トレースが表示されます。

  9. (省略可能な手順) このアプリケーションをローカルのオンプレミス開発環境でテストする場合は、Visual Studio を管理者として実行します。次に、接続文字列がローカル SQL Server データベース インスタンスを指していることを確認します。ローカル テストでは、サンプル データベースおよびテーブルをオンプレミス サーバーに作成します。次に、Web.config で <connectionStrings> タグを次のように置き換えます。

    <connectionStrings>
        <add name="SQLServerinWAConnection" connectionString="Data Source=tcp:SQLVMInternalIPAddress;Initial Catalog=TestDb;User ID=sqlvmlogin;Password=yourpassword;Encrypt=true;Trusted_Connection=false;TrustServerCertificate=true"
        providerName="System.Data.SqlClient" />
        <add name="SQLServerLocalConnection" connectionString="Data Source=localhost;Initial Catalog=TestDb;Trusted_Connection=true"
        providerName="System.Data.SqlClient" />
    </connectionStrings>
    
    さらに、Default.aspx ソース ファイルの ConnectingString 属性を次のように更新し、ローカル サーバーを指すようにします。

    ConnectionString="<%$ ConnectionStrings:SQLServerLocalConnection %>"
    
    続けて、F5 キーを押して、ソリューションを実行します。

管理ポータルで、仮想マシンを Azure 仮想ネットワークにデプロイできます。ただし、現在はポータルで、Azure クラウド サービス プロジェクトに仮想ネットワーク設定を指定できません。Azure 配置パッケージの .cscfg ファイルで、ネットワーク構成設定を更新する必要があります。このソリューションには、2 個のサービス構成ファイルがあります。

  • ServiceConfiguration.Cloud.csfg: この構成ファイルを使用して、Azure クラウド デプロイ用のアプリケーションを設定します。

  • ServiceConfiguration.Local.csfg: このローカル構成用ファイルは、コンピューティング エミュレーターのアプリケーションのデバッグに使用できます。

  1. Web ロールと SQL Server 仮想マシンが通信できるようにするには、SQL Server 仮想マシンと同じ仮想ネットワークに接続するように Web ロールを構成する必要があります。そのためには、ServiceConfiguration.Cloud.cscfg ファイルを更新する必要があります。ソリューション エクスプローラーで、[DataBinding] プロジェクトを展開します。Visual Studio で、サービス構成ファイルが [ロール] の直後に表示されます。ServiceConfiguration.Cloud.cscfg ファイルを開き、最後の NetworkConfiguration タグの直後に次の Role 要素を追加します。

    <NetworkConfiguration>
          <VirtualNetworkSite name="TestVirtualNetwork" />
          <AddressAssignments>
              <InstanceAddress roleName="WebRole1">
                 <Subnets>
                    <Subnet name="FrontEndSubnet" />
               </Subnets>
            </InstanceAddress>
       </AddressAssignments>
     </NetworkConfiguration>
    
    サービス構成ファイルの仮想ネットワーク要素の選択で値を指定しない場合、クラウド サービスが仮想ネットワークにデプロイされないことに注意してください。詳細については、「ネットワーク構成スキーマ」を参照してください。Azure プラットフォームで固有の DNS サーバーをデプロイする場合は、.csfg ファイルで Web ロールとワーカー ロールのインスタンスの DNS サーバーも指定する必要があります。

    Warning警告
    [VirtualNetworkSite 名][サブネット名] が、前の手順で仮想ネットワークを作成したときに使用した名前と一致することを確認します。

  2. 構成ファイルの設定を指定した後で、[ロールのプロパティ] ダイアログ ウィンドウを開き、使用する構成を選択します。そのためには、ソリューション エクスプローラー[WebRole1] を右クリックします。[WebRole1][プロパティ] ウィンドウを開きます。[構成] をクリックします。[サービスの構成] ボックスで、[クラウド] をクリックします。

  3. F6 キーを押して、ソリューションをビルドします。

    Warning警告
    仮想マシンおよび Azure の Web ロールとワーカー ロールを同じ Azure 仮想ネットワークに保持することにより、仮想ネットワークの待機時間が短くなり、接続の安全性が向上します。

このセクションでは、Visual Studio を使用してパッケージを作成することにより、Azure に Web アプリケーションをパブリッシュします。次に、そのパッケージを使用し、以前に SQL Server 仮想マシンの作成で使用したのと同じ仮想ネットワークにクラウド サービスを作成します。

  1. Web アプリケーションを Azure にパブリッシュするには、Visual Studio のソリューション エクスプローラーで、DataBinding プロジェクトを右クリックし、[パッケージ] をクリックします。

  2. [Azure アプリケーションのパッケージ化] ダイアログ ウィンドウで、[サービスの構成][クラウド] に設定され、[ビルド構成][リリース] に設定されていることを確認します。次に、[パッケージ] ボタンをクリックします。

    Warning警告
    Visual Studio が既存の <プロジェクト フォルダー>\bin\Release\app.publish フォルダーを上書きできないことを示すエラーが発生した場合は、既存のパッケージ ファイルを手動で削除します。次に、前の 2 回の手順を繰り返して新しいパッケージを作成します。

  3. 管理ポータルにログインします。

  4. ページ下部の [+新規] をクリックし、[計算][クラウド サービス][カスタム作成] の順にクリックします。

  5. [クラウド サービスの作成] ウィンドウで、[URL] ボックスに「DataBinding」と入力し、[地域/アフィニティ グループ] ボックスの一覧で TestAffinityGroup をクリックして、[今すぐクラウド サービス パッケージを展開します] オプションをオンにします。矢印をクリックして次へ進みます。

  6. [クラウド サービスの発行] ウィンドウで、新しいデプロイの名前を入力します (たとえば、DataBinding)。パッケージ ファイルおよび構成ファイルの場所 (たとえば、<プロジェクト フォルダー>\bin\Release\app.publish) を参照し、[1 つ以上のロールに単一のインスタンスが含まれている場合でも展開する] オプションをオンにします。

  7. SSL 暗号化を使用してアプリケーションを保護する場合は、[今すぐ証明書を追加] チェック ボックスを使用できます。詳細については、「Azure のアプリケーションに対する SSL の構成」を参照してください。

  8. 次に、チェック マーク ボタンをクリックします。クラウド サービスの作成には数分かかる場合があります。

  9. 仮想ネットワーク上のすべてのリソースを表示するには、左側のペインで [ネットワーク] をクリックします。次に、[TestVirtualNetwork] をクリックしてダッシュボードを開きます。

  10. アプリケーションを実行するには、左側のペインで [クラウド サービス] をクリックします。次に、DataBinding クラウド サービスをクリックしてダッシュボードを開きます。[サイトの URL] をクリックしてアプリケーションを実行します。

  11. Visual Studio 2013 を使用してこの ASP.NET アプリケーションを構築する場合は、アプリケーションが実行されたときに次の画面が表示されます。

Warning警告
このチュートリアルでは、SSL 暗号化またはサービス レベルの証明書を使用してクラウド サービスを保護する方法については説明しません。アプリケーションおよびアプリケーション内の接続文字列は、常にセキュリティで保護することをお勧めします。

クラウド サービスのユーザーに対して安全なやり取りを提供するには、サービスの証明書を使用します。Visual Studio から Azure にクラウド サービスを直接パブリッシュする場合は、管理証明書を使用します。証明書の詳細については、「Azure の証明書の管理」を参照してください。サービス証明書を構成する方法の詳細については、「Azure のアプリケーションに対する SSL の構成」および「HTTPS エンドポイント上での SSL 証明書の構成方法」を参照してください。

さらに、インターネット上でアプリケーションにアクセスできる運用環境に移行する前に、パッケージ化したアプリケーションを Azure のステージング環境にデプロイしてテストすることをお勧めします。詳細については、「Azure のアプリケーションのステージング」を参照してください。

関連項目

表示:
© 2014 Microsoft