ASP.NET(.NET Framework 4.8)をIISにデプロイする手順
はじめに
Windows Server 2019にIISを立ち上げ、ASP.NET(.NET Framework 4.8)をデプロイする手順をまとめました。
開発環境
- Windows 10 64bit
- Visual Studio Community 2022
- C#
- .NET Framework 4.8
- ASP.NET Webアプリケーション
実行環境
- Windows Server 2019 試用版
- IIS 10.0
- Hyper-V 10.0
構成

前提
- 認証なし(http)
- オフライン環境のオンプレミスへのデプロイを想定
- Visual Studioから直接IISにデプロイしない(Webアプリケーションを開発環境のローカルフォルダに発行する)
デプロイするアプリケーション
Visual Studioのテンプレートプロジェクトを利用し、サンプルコードをそのままデプロイする。
- ASP.NET Webアプリケーション(Web API)
- ASP.NET Webアプリケーション(MVC)
| 設定内容 | ASP.NET Webアプリケーション(Web API) | ASP.NET Webアプリケーション(MVC) |
|---|---|---|
| フレームワーク | .NET Framework 4.8 | .NET Framework 4.8 |
| 認証 | なし | なし |
| フォルダーおよびコア参照を追加する | Webフォーム:チェックなし MVC:チェックあり Web API:チェックあり |
Webフォーム:チェックなし MVC:チェックあり Web API:チェックなし |
| HTTPS用の構成 | チェックなし | チェックなし |
| Dockerのサポート | チェックなし | チェックなし |
| 単体テストのためのプロジェクトも作成する | チェックなし | チェックなし |
デプロイするまでの全体の流れ

Webサーバーを立ち上げる
- Windows Server 2019にIISをインストールする。
- サーバーマネージャーを起動する
- 「役割と機能と追加」を選択する
- 「開始する前に」はデフォルトのまま次へ
- 「インストールの種類」はデフォルトのまま次へ
- 「サーバーの選択」はデフォルトのまま次へ
- 「サーバーの役割」は「Web サーバー(IIS)」を選択し次へ

- 「機能」はデフォルトのまま次へ
- 「Web サーバーの役割(IIS)」はデフォルトのまま次へ
- 「役割サービス」はデフォルトのまま次へ
- 「確認」でインストールを実行する
- 自動でIISが起動する
- ブラウザで
http://localhostを開くとIISのデフォルトサイトが開く
Webアプリケーションの実行環境をインストールする
- Windows Server 2019にASP.NETをインストールする。
- サーバーマネージャーを起動する
- 「役割と機能と追加」を選択する
- 「開始する前に」はデフォルトのまま次へ
- 「インストールの種類」はデフォルトのまま次へ
- 「サーバーの選択」はデフォルトのまま次へ
- 「サーバーの役割」は「Web サーバー(IIS)> Web サーバー > アプリケーション開発 > ASP.NET 4.7」を選択し次へ

- 「機能」はデフォルトのまま次へ
- 「確認」でインストールを実行する
- Windows Server 2019に .NET Framework 4.8をインストールする。
- Microsoftのダウンロードサイトより .NET Framework 4.8をダウンロードする
- ダウンロードした
ndp48-x86-x64-allos-enu.exeを実行する
デプロイするWebアプリケーションを作成する
- Windows 10でWebアプリケーションを作成する。
- Visual Studioを起動する
- プロジェクトを作成する
- 「発行」>「フォルダー」

- プロジェクトを発行する
デフォルトはVisual Studioソリューション\プロジェクト\bin\app.publishにWebアプリケーションが作成される
Webアプリケーションを配置する
- Windows 10で作成したWebアプリケーション(フォルダ丸ごと)を、Windows Server 2019にコピーする
- Windows 10(コピー元)
Visual Studioソリューション\プロジェクト\bin\app.publish - Windows Server 2019(コピー先)
デスクトップ
- Windows 10(コピー元)
WebサーバーにWebアプリケーションを登録する
- IISに元からあるDefault Web Site
http:80にWebアプリケーションを登録する。- IISマネージャーを立ち上げる
- アプリケーションプールを追加する
- 「.Net CLRバージョン」は、「.Net CLR バージョン v4.0.30319」にする
- 仮想ディレクトリを追加する
- 「エイリアス」は、クライアントからアクセスするときのURL
http://{ホスト名}:80/{エイリアス}の一部となる - 「物理パス」は、コピーしてきたWebアプリケーションのフォルダを指定する
- 「エイリアス」は、クライアントからアクセスするときのURL
- アプリケーションに変換する
仮想ディレクトリをアプリケーションに変換する
- 「アプリケーションプール」は、手順2で作成した「SampleWebApplication」を指定する
トラブルシューティング
- 500.19エラー
原因は、web.configへのアクセス権がないためである。Webアプリケーションの実行ユーザー(アプリケーションプール)に、コピーしてきたWebアプリケーションのフォルダへのアクセス権を付与する。- アプリケーションの実行ユーザー
IIS AppPool\{アプリケーションプール名=SampleWebApplication} - アプリケーションのフォルダ
デスクトップ\app.publish
- アプリケーションの実行ユーザー
- 401.3エラー
IISユーザーに、コピーしてきたWebアプリケーションのフォルダへのアクセス権を付与する。
- IISユーザー
IUSR - アプリケーションのフォルダ
デスクトップ\app.publish
- IISユーザー
- 403.14エラー
記載されている対処方法を実施しても、ブラウザにフォルダが表示されるだけで解決しない。
Webアプリケーションの実行環境をインストールするを実施すると解消する。つまり、実行環境の不足が原因。 - サーバーエラー
原因は、.NET Framework 4.8がインストールされていないためである。.NET Framework 4.8をインストールする。
参考サイト
- 401.3エラーの対処