Blazor WebAssembly で作成したアプリを IIS に配置する

ページ作成日 :

環境

Visual Studio
  • Visual Studio 2019
.NET
  • .NET 5.0
Internet Information Service (IIS)
  • IIS 10
配置先 Windows Server
  • Windows Server 2019

はじめに

Blazor WebAssembly アプリケーションはクライアント技術であるため IIS 以外の Web サーバーにも配置は可能ですが、今回はプロジェクトをそのまま IIS に発行する手順について説明します。 基本的には ASP.NET Core のプロジェクトを発行する手順とほぼ同じなので、違う点について重点的に説明します。

Windows Server セットアップ

Windows Server がインストール済みであることとします。

バージョンについては多少古くても問題ありません。

IIS セットアップ

詳しくは以下のページでも説明していますので詳細は省きます。

スタートメニューから「サーバー マネージャー」を起動します。

管理メニューから「役割と機能の追加」を選択します。

「次へ」をクリックします。

「次へ」をクリックします。

「次へ」をクリックします。

「Web サーバー (IIS)」を選択します。

以下の画面が表示されるので「機能の追加」ボタンをクリックします。

特に追加するものが無いので「次へ」をクリックします。

「次へ」をクリックします。

「管理サービス」を追加します。Visual Studio から直接発行するのに必要です。

以下の画面が表示されるので「機能の追加」ボタンをクリックします。

「インストール」をクリックします。

IIS マネージャーを起動し「管理サービス」が含まれていることを確認。

Web Deploy のインストール

Visual Studio からの発行プログラムを受け取るために必要です。

以下のリンク先に移動します。

ダウンロードします。

Windows Server は基本 64bit しかないので 64bit 版をダウンロードします。

Windows Server 上で実行します。

「次へ」をクリックします。

「使用許諾契約書に同意します」にチェックをいれて「次へ」をクリックします。

「完全」をクリックします。

「インストール」ボタンをクリックします。

インストールが終わったら「完了」ボタンをクリックします。

IIS マネージャーを開くと「管理サービスの委任」が追加されています。

アプリケーションプールの設定

動作確認目的なので今回特に設定は変更しません。設定する場合は以下のページを参照してください。

サイトの作成

動作確認目的なので最初からある Default Web Site を使用します。別途作成する場合は以下のページを参照してください。

配置ユーザー関連設定

動作確認目的なので今回特に作成はせず Windows アカウントで配置します。設定する場合は以下のページを参照してください。

URL Rewrite のインストール

Blazor WebAssembly のサイトではデフォルトで内部的にリダイレクトを行っているので URL Rewrite をインストールします。 ファイルをダウンロードしますので、Windows Server 側がセキュリティの問題でダウンロードできない場合は事前に他の PC でダウンロードしてください。

Web ブラウザで以下のサイトにアクセスします。

「Install this extension」をクリックします。(インストールと書いていますが実際にはダウンロードになってます)

ダウンロードした「urlrewrite2.exe」をサーバーで実行します。

Web PI が起動するのでインストールします。

「同意する」を選択します。

Web PI は終了します。

Visual Studio からプログラムを配置する

作業 PC に戻り Visual Studio を起動して Blazor WebAssembly のプロジェクトを開きます。 今回はプロジェクトを新規で作成した状態のプログラムを発行します。

プロジェクトを右クリックして「発行」を選択します。

「Web サーバー (IIS)」を選択して「次へ」をクリックします。

「Web 配置」を選択します。

以下の項目を入力します。

パラメータ名
サーバー IIS を設定したサーバーの IP アドレスまたは DNS 名またはドメイン名。インターネット、イントラネットどちらでも指定可能です。
サイト名 IIS に追加してあるサイト名を指定します。
宛先 URL 空白で問題ありません。
ユーザー名 Windows Server のユーザーアカウント、または IIS で作成したユーザー名を指定します。
パスワード 上記ユーザーの認証パスワードを入力します。
パスワードの保存 発行するたびにパスワード入力するのが面倒であれば保存します。

図のように作成されます。

複数の発行プロファイルを作成した場合は上のドロップダウンで変更可能ですが、名前が紛らわしい場合は変更可能です。

細かい設定については編集画面で変更可能です。

左のタブから「設定」を選択している状態です。特別変える必要はありませんが、必要に応じて「構成」「ターゲット ランタイム」「ファイル公開オプション」を変更してください。

左のタブから「接続」を選択した状態です。最初に入力したものが表示されていますが、下にある「接続の検証」ボタンをクリックしてください。

発行先に正常に接続できると以下のダイアログが表示されます。「Visual Studio の今後のセッションのためにこの証明書を保存する」にチェックをいれて「同意する」ボタンをクリックします。 保存した場合、このダイアログは初回のみ表示されます。

接続の検証の右側にチェックマークが表示されれば正常に接続できていることとなります。

ちなみに失敗する場合はリンクをクリックして原因を確認し、原因に応じて対処してください。

よくある原因としては

  • ユーザー名・パスワードが間違っている。
  • IIS 側でユーザーが許可されていない。調査方法としてはいったん Windows 管理者で配置する。
  • ファイアウォールの「TCP 8172」が許可されていない。Azure などのクラウドではクラウド側で許可していない。
  • Web 配置ツールを「完全」でインストールしていない。
  • IIS の設定が不足している。本 Tips を再確認してください。

設定が終わったらソリューション エクスプローラーから「ソリューション → プロジェクト → Properties → PublishProfiles」 を展開し、設定した発行名の「.pubxml」があるので開きます。

Project > PropertyGroup タグの中に以下のコードを追加して保存します。

<AllowUntrustedCertificate>True</AllowUntrustedCertificate>

終わったら発行ボタンで発行します。

公開に成功すれば完了です。たまに失敗することがありますので、その場合は再度発行するか接続の検証を行ってください。

Web ブラウザでアクセスし、Blazor のプログラムが動作しているのを確認できれば完了です。

ちなみに PWA でインストールさせる場合、HTTPS 通信で無ければできませんのでご注意ください。

Windows Server への .NET Runtime のインストールについて

Blazor WebAssembly はクライアントの技術であるため、サーバー側にインストールする必要はありません。

Blazor の別の仕組みである Blazor Server の場合は必要になります。