IIS から発行設定を取得して Visual Studio にインポートする

[発行] ツールを使用して、発行設定をインポートしてからアプリを配置することができます。 この記事では、IIS 用の発行設定を使用します。

これらの手順は、ASP.NET および ASP.NET Core の Web アプリケーションに適用されます。

Note

発行設定ファイル (*.publishsettings) は、発行プロファイル (*.pubxml) とは異なります。 発行設定ファイルは IIS で作成され、Visual Studio にインポートできます。 Visual Studio では発行プロファイルが作成されます。

前提条件

  • ASP.NET と Web 開発ワークロードと共にインストールされる Visual Studio。 Visual Studio を既にインストールしている場合は、次のように実行します。

    • [ヘルプ]>[更新プログラムの確認] の順に選択して、Visual Studio に最新の更新プログラムをインストールします。
    • [ツール]>[ツールと機能を取得] の順に選択し、ワークロードを追加します。
  • サーバーでは Windows Server 2012 以上を実行している必要があります。また、発行設定ファイル (*.publishsettings)) を生成するには IIS Web Server ロールを正しく設定している必要があります。 ASP.NET 4.5 または ASP.NET Core もサーバーにインストールする必要があります。 このチュートリアルの手順は、Windows Server 2022 でテストされました。

    • ASP.NET Core を設定する方法については、「IIS を使用した Windows での ASP.NET Core のホスト」を参照してください。 ASP.NET Core については、記事で説明されているように、[マネージ コードなし] を使用しするようにアプリケーション プールを構成してください。

    • ASP.NET 4.5 を設定する方法については、「IIS 8.0 Using ASP.NET 3.5 and ASP.NET 4.5」 (ASP.NET 3.5 および ASP.NET 4.5 を使用する IIS 8.0) を参照してください。

    Note

    Windows 上の IIS では、発行設定の生成はサポートされていません。 ただし、Visual Studio の発行ツールを使用して IIS に発行することはできます。

Windows Server に Web 配置をインストールして構成する

Web 配置は、UI から発行設定ファイルの作成を有効にする追加の構成機能を提供しています。

注意

Web Platform Installer のサポートは、2022 年 7 月 1 日に終了しました。 詳細については、「Web Platform Installer - サポート終了と製品/アプリケーション フィードの終了」を参照してください。 Web 配置 4.0 を直接インストールして、発行設定ファイルを作成できます。

  1. [IIS 管理スクリプトおよびツール] をまだインストールしていない場合は、今すぐインストールします。

    [サーバーの役割の選択]>[Web Server (IIS)]>[管理ツール] の順に移動して、[IIS 管理スクリプトおよびツール] の役割を選択し、[次へ] をクリックしてその役割をインストールします。

    Install IIS Management Scripts and Tools

    発行設定ファイルの作成を有効にするには、このスクリプトとツールが必要です。

    管理サービスIIS 管理コンソールもインストールしてください (既にインストールされている可能性があります)。

  2. Windows Server で、Web 配置 4.0 をダウンロードします

  3. Web 配置インストール プログラムを実行し、一般的なインストールではなく [完全] インストールを選択してください。

    完全インストールでは、発行設定ファイルを生成するために必要なコンポーネントが取得されます。 (代わりに [カスタム] を選択すると、次の図に示すようにコンポーネントの一覧が表示されます。)

    Screenshot showing Web Deploy 4.0 components

  4. (省略可能) [コントロール パネル] > [システムとセキュリティ] > [管理ツール] > [サービス] を開くことで、Web 配置が正常に実行されていることを確認した後、以下を確認します。

    • Web Deployment Agent Service が実行されている (古いバージョンではサービス名が異なります)。

    • Web 管理サービスが実行されている。

    いずれかのエージェント サービスが実行されていない場合は、Web Deployment Agent サービスを再起動します。

    Web Deployment Agent サービスがまったく表示されない場合は、[コントロール パネル] > [プログラム] > [プログラムのアンインストール] の順に移動し、[Microsoft Web Deploy <バージョン>] を見つけます。 インストールの [変更] を選び、Web 配置コンポーネントに [ローカル ハード ドライブにインストール] を選択していることを確認します。 インストールの変更手順を完了します。

Windows Server 上の IIS に発行設定ファイルを作成する

  1. IIS 管理コンソールを閉じて、もう一度開き、UI の更新された構成オプションを表示します。

  2. IIS で [既定の Web サイト] を右クリックして、[展開]>[Web 配置による発行の有効化] の順に選びます。

    Configure Web Deploy configuration

    [配置] メニューが表示されない場合は、前のセクションを参照して Web 配置が実行されていることを確認します。

  3. [Web 配置による発行の有効化] ダイアログ ボックスで、この設定を確認します。

  4. [設定] をクリックします。

    [結果] パネルで、出力に特定のユーザーに付与されているアクセス権が示され、 .publishsettings のファイル拡張子が付いたファイルがダイアログ ボックスで示されている場所に作成されています。

    <?xml version="1.0" encoding="utf-8"?>
    <publishData>
      <publishProfile
        publishUrl="https://myhostname:8172/msdeploy.axd"
        msdeploySite="Default Web Site"
        destinationAppUrl="http://myhostname:80/"
        mySQLDBConnectionString=""
        SQLServerDBConnectionString=""
        profileName="Default Settings"
        publishMethod="MSDeploy"
        userName="myhostname\myusername" />
    </publishData>
    

    ご利用の Windows Server と IIS の構成によって、XML ファイルには異なる値が表示されます。 表示される値に関する詳細のいくつかを次に示します。

    • publishUrl 属性で参照されている msdeploy.axd ファイルは、Web 配置用に動的に作成された HTTP ハンドラー ファイルです。 (テスト目的で、通常、http://myhostname:8172 も動作します。)

    • publishUrl ポートは、Web 配置の既定値であるポート 8172 に設定されます。

    • destinationAppUrl ポートは、IIS の既定値であるポート 80 に設定されます。

    • 後の手順で Visual Studio でホスト名を使用してリモート ホストに接続できない場合は、ホスト名の代わりにサーバーの IP アドレスでテストします。

      注意

      Azure VM で実行されている IIS に発行する場合は、ネットワーク セキュリティ グループに Web 配置ポートと IIS 用のポートを開く必要があります。 詳細については、仮想マシンへのポートを開く方法に関するページを参照してください。

  5. Visual Studio を実行しているコンピューターにこのファイルをコピーします。

Visual Studio で発行設定をインポートして配置する

  1. Visual Studio で ASP.NET プロジェクトを開いているコンピューターで、ソリューション エクスプローラーのプロジェクトを右クリックし、 [発行] を選択します。

    以前に発行プロファイルを構成してある場合、 [発行] ウィンドウが表示されます。 [新規] または [新しいプロファイルの作成] をクリックします。

  2. プロファイルをインポートするオプションを選択します。

    [発行] ダイアログ ボックスで [プロファイルのインポート] をクリックします。

    Choose Publish

  3. 前のセクションで作成した発行設定ファイルの場所に移動します。

  4. [発行設定ファイルのインポート] ダイアログで、前のセクションで作成したプロファイルに移動して選択し、 [開く] をクリックします。

    [完了] をクリックして発行プロファイルを保存し、 [発行] をクリックします。

    Visual Studio で配置プロセスを開始します。[出力] ウィンドウに進行状況と結果が表示されます。

    配置エラーが発生した場合は、[その他の処理]>[編集] をクリックして設定を編集します。 設定を変更し、 [検証] をクリックして新しい設定をテストします。 ホスト名が見つからない場合は、[サーバー][参照先 URL] の両方のフィールドにホスト名ではなく IP アドレスを入力してみてください。

    Edit settings in the Publish tool

アプリが正常に配置されたら、自動的に起動されます。

一般的な問題

最初に、Visual Studio の [出力] ウィンドウで状態情報を確認し、エラー メッセージを確認します。 さらに:

  • ホスト名を使用してホストに接続できない場合は、代わりに IP アドレスを試してみてください。
  • リモート サーバーで必要なポートが開かれていることを確認します。
  • ASP.NET Core の場合、IIS で DefaultAppPool の [アプリケーション プール] フィールドが [マネージド コードなし] に設定されていることを確認する必要があります。
  • ご自分のアプリで使用している ASP.NET のバージョンが、サーバーにインストールしたバージョンと同じであることを確認します。 ご自分のアプリでは、 [プロパティ] ページでバージョンを表示および設定できます。 アプリに別のバージョンを設定するには、そのバージョンがインストールされている必要があります。
  • アプリを開こうとしたとき、証明書の警告が表示される場合は、サイトを信頼することを選択します。 警告を既に閉じてしまった場合は、プロジェクトの *.pubxml ファイルを編集し、<AllowUntrustedCertificate>true</AllowUntrustedCertificate> 要素を追加します。 この設定はテスト専用です。
  • Visual Studio からアプリが起動しない場合は、IIS でアプリを起動し、正常に展開されていることを確認します。