発行ツールを使用して 発行 設定をインポートし、アプリをデプロイできます。 この記事では、IIS の発行設定を使用します。
これらの手順は、コア Web アプリケーションの ASP.NET と ASP.NET に適用されます。
注
発行設定ファイル (*.publishsettings) は、発行プロファイル (*.pubxml) とは異なります。 発行設定ファイルは IIS で作成され、Visual Studio にインポートできます。 発行プロファイルは Visual Studio によって作成されます。
[前提条件]
ASP.NET および Web 開発ワークロードと共にインストールされた Visual Studio。 Visual Studio を既にインストールしている場合:
- [ヘルプ] を選択して Visual Studio に最新の更新プログラムをインストールします>更新プログラムのチェックを行います。
- [ツール] を選択してワークロードを追加します>ツールと機能を取得します。
サーバー上で Windows Server 2012 以降を実行していて、 IIS Web サーバーの役割 が正しくインストールされている必要があります (発行設定ファイル (
.publishsettingsを生成するために必要)。 ASP.NET 4.5 または正しいバージョンの ASP.NET Core もサーバーにインストールする必要があります。 このチュートリアルの手順は、Windows Server 2022 と IIS 10 でテストされました。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」を参照してください。
注
Windows 上の IIS では、発行設定の生成はサポートされていません。 ただし、Visual Studio の発行ツールを使用して IIS に発行することもできます。
Windows Server に Web Deploy をインストールおよび構成する
Web 配置には、UI から発行設定ファイルを作成できる追加の構成機能が用意されています。
注
Web プラットフォーム インストーラーは、7/1/22 に終了しました。 詳細については、「Web プラットフォーム インストーラー - サポートの終了と製品/アプリケーション フィードの段階的な廃止」をご覧ください。 Web Deploy 4.0 を直接インストールして、発行設定ファイルを作成できます。
IIS 管理スクリプトとツール
まだインストールしていない場合は、ここでインストールします。 Web Server (IIS) 管理ツール サーバーロールの選択] に移動し、 IIS 管理スクリプトとツールの ロールを選択し、[次] をクリックして、ロールをインストールします。
をインストールする発行設定ファイルの生成を有効にするには、スクリプトとツールが必要です。
管理サービス と IIS 管理コンソールもインストールしてください (既にインストールされている可能性があります)。 Windows Server で Web Deploy 4.0をダウンロード。
Web Deploy インストール プログラムを実行し、一般的なインストールではなく、完全な インストールを選択していることを確認します。
完全なインストールでは、発行設定ファイルを生成するために必要なコンポーネントを取得します。 (代わりに [カスタム
選択した場合は、次の図に示すように、コンポーネントの一覧を表示できます)。
を示すスクリーンショット(省略可能)Windows Tools > Services の [コントロール パネル] > [システムとセキュリティ] >開いて、Web 配置が正しく実行されていることを確認し、次のことを確認します。
Web Deployment Agent Service が実行されています (サービス名は古いバージョンでは異なります)。
Web Management Service が実行されています。
エージェント サービスのいずれかが実行されていない場合は、Web Deployment Agent Serviceを再起動します。
Web 展開エージェント サービスがまったく存在しない場合は、[コントロール パネル] > [プログラム] > プログラムのアンインストールに移動し、Microsoft Web Deploy <バージョン >を見つけます。 インストールの [変更] を選び、Web 配置コンポーネントに [ローカル ハード ドライブにインストール] を選択していることを確認します。 変更のインストール手順を完了します。
Windows Server 上の IIS で発行設定ファイルを作成する
IIS 管理コンソールを閉じて再度開くと、UI に更新された構成オプションが表示されます。
IIS で [既定の Web サイト] を右クリックして、[配置]>[Web 配置の発行の構成] を選びます。
を構成する[Deploy] メニューが表示されない場合は、前のセクションを参照して、Web 配置が実行されていることを確認してください。
[Web 配置の発行の構成] ダイアログ ボックスで、設定を確認します。
[設定] をクリックします。
結果パネルで、指定したユーザーにアクセス権が付与されていること、および
.publishsettingsファイル拡張子を持つファイルがダイアログ ボックスに表示される場所に生成されたことが出力に示されます。<?xml version="1.0" encoding="utf-8"?> <publishData> <publishProfile publishUrl="https://myhostname:8172/msdeploy.axd" msdeploySite="Default Web Site" destinationAppUrl="http://myhostname:80/" profileName="Default Settings" publishMethod="MSDeploy" userName="myhostname\myusername" /> </publishData>Windows Server と IIS の構成に応じて、XML ファイルに異なる値が表示されます。 表示される値の詳細を次に示します。
属性で参照される
publishUrlファイルは、Web 配置用に動的に生成された HTTP ハンドラー ファイルです。 (テスト目的では、http://myhostname:8172は一般的に同様に機能します)。publishUrlポートはポート 8172 に設定されます。これは Web 配置の既定値です。destinationAppUrlポートは、IIS の既定値であるポート 80 に設定されます。後の手順で、ホスト名を使用して Visual Studio からリモート ホストに接続できない場合は、ホスト名の代わりにサーバーの IP アドレスをテストします。
注
Azure VM で実行されている IIS に発行する場合は、ネットワーク セキュリティ グループで Web デプロイと IIS の受信ポートを開く必要があります。 詳細については、「仮想マシンへのポートを開く」を参照してください。
このファイルを Visual Studio を実行しているコンピューターにコピーします。
Visual Studio で発行設定をインポートしてデプロイする
Visual Studio で ASP.NET プロジェクトを開いているコンピューターで、ソリューション エクスプローラーでプロジェクトを右クリックし、発行を選択します。
発行プロファイルを以前に構成した場合は、[ 発行 ] ウィンドウが表示されます。 「新規」をクリックするか、または「新しいプロファイルの作成」を選択します。
プロファイルをインポートするオプションを選択します。
[発行] ダイアログ ボックスで [プロファイルのインポート] をクリックします。
前のセクションで作成した発行設定ファイルの場所に移動します。
[発行設定ファイルのインポート] ダイアログで、前のセクションで作成したプロファイルに移動して選択し、[開く] をクリックします。
[完了] をクリックして発行プロファイルを保存し、[発行] をクリックします。
Visual Studio によってデプロイ プロセスが開始され、[出力] ウィンドウに進行状況と結果が表示されます。
展開エラーが発生した場合は、[ その他のアクション]>編集 をクリックして設定を編集します。 設定を変更し、[検証] をクリックして新しい設定をテストします。 ホスト名が見つからない場合は、[ サーバー ] フィールドと [ 宛先 URL ] フィールドの両方でホスト名の代わりに IP アドレスを試してください。
発行ツール で設定を編集
アプリが正常にデプロイされると、自動的に開始されます。
一般的な問題
まず、Visual Studio の [出力] ウィンドウで状態情報を確認し、エラー メッセージを確認します。 さらに:
- ホスト名を使用してホストに接続できない場合は、代わりに IP アドレスを試してください。
- リモート サーバーで必要なポートが開いていることを確認します。
- ASP.NET Core の場合、IIS では 、DefaultAppPool のアプリケーション プール フィールド (IIS 10 の .NET CLR バージョン) が [マネージド コードなし] に設定されていることを確認する必要があります。
- アプリで使用されている ASP.NET のバージョンが、サーバーにインストールしたバージョンと同じであることを確認します。 アプリの場合は、の [プロパティ] ページでバージョンを表示および設定できます。 アプリを別のバージョンに設定するには、そのバージョンをインストールする必要があります。
- アプリを開こうとしたが、証明書の警告が表示された場合は、サイトを信頼することを選択します。 警告を既に閉じている場合は、プロジェクト内の *.pubxml ファイルを編集し、次の要素を追加できます:
<AllowUntrustedCertificate>true</AllowUntrustedCertificate>。 この設定はテスト専用です。 - アプリが Visual Studio から起動しない場合は、IIS でアプリを起動して、正しくデプロイされたことをテストします。