IIS から発行設定を取得し、Visual Studio にインポートする
発行 ツールを使用して発行設定をインポートし、アプリをデプロイできます。 この記事では、IIS の発行設定を使用します。
これらの手順は、コア Web アプリケーションの ASP.NET と ASP.NET に適用されます。
手記
発行設定ファイル (*.publishsettings) は、発行プロファイル (*.pubxml) とは異なります。 発行設定ファイルは IIS で作成され、Visual Studio にインポートできます。 Visual Studio では発行プロファイルが作成されます。
前提 条件
Visual Studio ASP.NET および Web 開発ワークロードと共にインストールされます。 Visual Studio を既にインストールしている場合:
- [ヘルプ]
[更新プログラムの確認] 選択して、Visual Studio に最新の更新プログラムをインストールします。 - [ツール]>[ツールと機能の取得]を選択して、ワークロードを追加します。
- [ヘルプ]
サーバーでは、Windows Server 2012 以降を実行している必要があります。また、IIS Web サーバーの役割 正しくインストールされている必要があります (発行設定ファイル (
.publishsettings
を生成するために必要)。 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 を設定するには、「ASP.NET 3.5 と ASP.NET 4.5を使用する IIS 8.0 の
を参照してください。
手記
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 インストール プログラムを実行し、一般的なインストールではなく、完全な インストールを選択していることを確認します。
完全なインストールでは、発行設定ファイルを生成するために必要なコンポーネントを取得します。 (代わりに [カスタム
選択した場合は、次の図に示すように、コンポーネントの一覧を表示できます)。 を示すスクリーンショット
(省略可能) 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
属性で参照される msdeploy.axd ファイルは、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 によってデプロイ プロセスが開始され、[出力] ウィンドウに進行状況と結果が表示されます。
展開エラーが発生した場合は、[その他 アクション]>[編集] をクリックして設定を編集します。 設定を変更し、[検証] をクリックして新しい設定をテストします。 ホスト名が見つからない場合は、Server フィールドと Destination URL フィールドの両方でホスト名の代わりに IP アドレスを試してください。
発行ツール で設定を編集
アプリが正常にデプロイされると、自動的に開始されます。
一般的な問題
まず、Visual Studio の [出力] ウィンドウで状態情報を確認し、エラー メッセージを確認します。 さらに:
- ホスト名を使用してホストに接続できない場合は、代わりに IP アドレスを試してください。
- リモート サーバーで必要なポートが開いていることを確認します。
- ASP.NET Core の場合、IIS では、
DefaultAppPool の [アプリケーション プール] フィールドが [マネージド コードなしに設定されていることを確認する必要があります。 - アプリで使用されている ASP.NET のバージョンが、サーバーにインストールしたバージョンと同じであることを確認します。 アプリの場合は、の [プロパティ] ページでバージョンを表示および設定できます。 アプリを別のバージョンに設定するには、そのバージョンをインストールする必要があります。
- アプリを開こうとしたが、証明書の警告が表示された場合は、サイトを信頼することを選択します。 警告を既に閉じている場合は、プロジェクト内の *.pubxml ファイルを編集し、次の要素を追加できます:
<AllowUntrustedCertificate>true</AllowUntrustedCertificate>
。 この設定はテスト専用です。 - アプリが Visual Studio から起動しない場合は、IIS でアプリを起動して、正しくデプロイされたことをテストします。