前回は Blazor WebAssembly アプリ(C# Blazor クライアントサイドアプリ)を Visual Studio の F5 でデバッグ実行したが、今回は、本番運用の雰囲気を掴むために、アプリを Web サーバー(Windows 10 の自サーバー)で公開してみる。Web サーバーにアクセスするとクライアントアプリがダウンロードされて実行される。ローカル LAN のみでの公開で、インターネットには公開しない。
インストール
Windows 10 の設定で「機能」で検索すると「Windows の機能の有効かまたは無効化」が出てくるのでクリック。
また、その下にある「インターネットインフォメーションサービスのホスト可能な Web コア」はチェックを入れなくて問題ないようだ(チェック入れておいた方が安心かも?)。
OK を押すと構成を更新してくれる。
マイクロソフト公式サイトから ASP.NET Core Hosting Bundle をダウンロード・インストール。
特段のオプションも無く、簡単にインストールが完了する。
マイクロソフト公式サイトから URL Rewrite Module 2 をダウンロード・インストール。
言語とプラットフォームでダウンロードファイルが異なっているが、通常は Japanese x64 installer だろう。
こちらもインストールは簡単。
発行
ソリューションエクスプローラーでプロジェクトを右クリックし、「発行」をクリック。
bin\Release\net5.0\browser-wasm\publish
デフォルトでは WebAssembly になっていないので、「ターゲットランタイム」などの右側にある鉛筆マークをクリックし、公開の設定ダイアログを開く。
「配置モード」を「自己完結」、「ターゲットランタイム」を「browser-wasm」にして保存する。
IIS の設定
スタートメニューから「インターネットインフォメーションサービス(IIS)マネージャー」を起動。
IIS マネージャー右側の操作ペインにて、サーバーを開始しておく。
Web サイトの追加ダイアログが表示される。
- サイト名:好きな名前にする。今回はアプリの名前と同じ「BlazorApp1」とした。
- アプリケーションプール:サイト名と同じ名前で自動入力される。
- 物理パス:発行時のフォルダーを指定する。ここで指定したフォルダーの直下に「wwwroot」フォルダーと「web.config」が存在しているはずである。wwwroot 自体を指定してはいけない。
- 種類:https にする。
- ポート:大きめのポートで好きなポートにする。今回は 10001 にした。
- SSL 証明書:IIS Express Development Certificate を選択。
設定できたら OK する。
(補足)試行錯誤中は https でないとうまく動かなかった気がしていたが、改めて試してみたら http でも動くようだ。
発行したフォルダーに IIS がアクセスできないことによるエラーなので、フォルダーのアクセス権限を設定する。
続いて追加ボタン、詳細設定ボタンをクリックすると、「ユーザーまたはグループの選択」ダイアログが開く。
以上で準備完了。
アクセス
以上、無事に IIS で Blazor WebAssembly アプリを公開できた。