Azure Stack Hub 内の VM に C# ASP.NET Web アプリをデプロイする

Azure Stack Hub 内にご自分の C# ASP.NET Web アプリをホストする仮想マシン (VM) を作成できます。 この記事では、サーバーを設定し、C# ASP.NET Web アプリをホストするようにサーバーを構成して、ご自分のアプリを Visual Studio から直接デプロイする方法について説明します。

この記事では Azure Stack Hub を使用する方法について説明します。 Azure Stack Hub を使用して、データ センターで Azure を実行できます。 グローバル Azure のガイダンスをお探しの場合は、Visual Studio を使用した Azure への ASP.NET Core アプリの発行に関するページをご覧ください。

前提条件

なし

VM の作成

VM を作成し、.NET Web アプリをホストするために必要なコンポーネントをインストールします。 VM には IIS 管理コンソール、Web 管理サービス、.NET ランタイム、Microsoft Web Deploy が必要です。 開発用コンピューターから Web サーバーと Web 配置のポートを開く必要があります。 .NET ランタイムをインストールするときは、ターゲット サーバーと開発用コンピューターの両方で同じバージョンの .NET を使用していることを確認してください。

  1. Windows Server VM を作成します。

  2. VM に (管理コンソールを含む) IIS および .NET 5.0 コンポーネントをインストールするには、PowerShell 5.x コンソールで次のスクリプトを実行します。

    # Install IIS (with Management Console)
    Install-WindowsFeature -name Web-Server -IncludeManagementTools
    
    # Install Web Management Service
    Install-WindowsFeature -Name Web-Mgmt-Service
    
  3. VM に .NET 5.0 をダウンロードします。

  4. Web 配置 v3.6 をダウンロードします。 MSI ファイルからインストールし、すべての機能を有効にします。

  5. Azure Stack Hub ポータルで、ご自分の VM のネットワーク設定に示されているポートを開きます。

    a. ご自分のテナントの Azure Stack Hub ポータルを開きます。

    b. ご自分の VM を検索します。 ダッシュボードに VM をピン留めしている場合があります。また、 [リソースの検索] ボックスで検索することもできます。

    c. [ネットワーク] を選択します。

    d. VM の下の [受信ポートの規則を追加する] を選択します。

    e. 次のポートのインバウンド セキュリティ規則を追加します。

    Port Protocol 説明
    80 HTTP ハイパーテキスト転送プロトコル (HTTP) は、サーバーからの Web ページの配信に使用されるプロトコルです。 クライアントは、DNS 名または IP アドレスを使用して HTTP 経由で接続されます。
    443 HTTPS ハイパーテキスト転送プロトコル セキュア (HTTPS) は、セキュリティ証明書を要求し、情報の暗号化された転送を許可する、セキュリティで保護されたバージョンの HTTP です。
    22 SSH Secure Shell (SSH) は、セキュリティで保護された通信のための暗号化されたネットワーク プロトコルです。 SSH クライアントとのこの接続を使用して、VM を構成し、アプリをデプロイします。
    3389 RDP 省略可能。 リモート デスクトップ プロトコルは、リモート デスクトップ接続を介して、マシンのグラフィック ユーザー インターフェイスを使用できるようにします。
    8172 Custom Web 配置で使用されるポート。

    各ポートに対して、次を実行します。

    a. [ソース][すべて] を選択します。

    b. [発信元ポート範囲] に、アスタリスク (*) を入力します。

    c. [宛先][すべて] を選択します。

    d. [宛先ポート範囲] で、開くポートを追加します。

    e. [プロトコル][すべて] を選択します。

    f. [アクション] で、 [許可] を選択します。

    g. [優先度] で、既定の選択項目のままにします。

    h. ポートが開いている理由を思い出せるように名前説明を入力します。

    i. [追加] を選択します。

  6. Azure Stack Hub 内にあるご自分の VM の [概要] 設定で、ご自分のサーバーの DNS 名を作成します。 ユーザーはこの URL を使用してお客様の Web サイトに接続できます。

    a. ご自分のテナントの Azure Stack Hub ポータルを開きます。

    b. ご自分の VM を検索します。 ダッシュボードに VM をピン留めしている場合があります。また、 [リソースの検索] ボックスで検索することもできます。

    c. [概要] を選択します。

    d. [DNS] で、 [構成] を選択します。

    e. [割り当て][動的] を選択します。

    f. 完全な URL が mywebapp.region.cloudapp.azurestack.corp.contoso.com のようになるように、mywebapp などの DNS 名ラベルを入力します。

アプリを作成する

Visual Studio の既定の .NET アプリを使用することも、Visual Studio を使用して Azure に ASP.NET Core アプリを発行に関するページの例のような独自の Web アプリを使用することもできます。 この記事では、Visual Studio 2019 の Azure Virtual Machines 発行機能を使用して、ASP.NET Web アプリを作成して Azure 仮想マシンに発行する方法について説明します。 インストールし、ご自分のアプリがローカルで実行されていることを確認したら、発行ターゲットをご使用の Azure Stack Hub インスタンス内の Windows VM に更新します。

アプリのデプロイと実行

開発用コンピューターから Azure Stack Hub 内のご自分の VM への発行ターゲットを作成します。

  1. ソリューション エクスプローラーで、ご自分のプロジェクトを右クリックし、 [発行] を選択します。

    ASP.NET Web アプリを Azure Stack Hub にデプロイする (発行)

  2. [発行] ウィンドウで、 [新規] を選択します。

  3. [Web サーバー (IIS)] を選択します。

  4. [次へ]>[Web 配置]>[次へ] を選択します。

  5. [サーバー] に、先ほど定義した DNS 名 (mywebapp.region.cloudapp.azurestack.corp.contoso.com など) を入力します。

  6. [サイト名] に、Default Web Site、またはターゲット サーバーの IIS で使用される名前を入力します。

  7. [ユーザー名] に、マシンのユーザー名を入力します。

  8. [パスワード] に、マシンのパスワードを入力します。

  9. [接続先 URL] に、サイトの URL (http://mywebapp.region.cloudapp.azurestack.corp.contoso.com など) を入力します。

    ASP.NET Web アプリのデプロイ - Web 配置の構成

  10. ご自分の Web 配置の構成を検証するには、 [接続の検証] を選択し、 [次へ] を選択します。

  11. [構成][リリース] に設定します。

  12. [ターゲット フレームワーク][net5.0] に設定します。

  13. [配置モード][フレームワーク依存] に設定します。

  14. [ターゲット ランタイム][win-x64] に設定します。

  15. [保存] を選択します。

  16. [発行] を選択します。 Visual Studio のコンソールに次のような出力が表示されます。

    Publish Succeeded.
    Web App was published successfully http://mywebapp.region.cloudapp.azurestack.corp.contoso.com/
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    ========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
    
  17. ご自分の新しいサーバーに移動します。 実行中のご自分の Web アプリケーションを確認できます。

    mywebapp.region.cloudapp.azurestack.corp.contoso.com