はじめに

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をインストールする。
    1. サーバーマネージャーを起動する
    2. 「役割と機能と追加」を選択する
    3. 「開始する前に」はデフォルトのまま次へ
    4. 「インストールの種類」はデフォルトのまま次へ
    5. 「サーバーの選択」はデフォルトのまま次へ
    6. 「サーバーの役割」は「Web サーバー(IIS)」を選択し次へ
      イメージ
    7. 「機能」はデフォルトのまま次へ
    8. 「Web サーバーの役割(IIS)」はデフォルトのまま次へ
    9. 「役割サービス」はデフォルトのまま次へ
    10. 「確認」でインストールを実行する
    11. 自動でIISが起動する
    12. ブラウザでhttp://localhostを開くとIISのデフォルトサイトが開く

Webアプリケーションの実行環境をインストールする

  • Windows Server 2019にASP.NETをインストールする。
    1. サーバーマネージャーを起動する
    2. 「役割と機能と追加」を選択する
    3. 「開始する前に」はデフォルトのまま次へ
    4. 「インストールの種類」はデフォルトのまま次へ
    5. 「サーバーの選択」はデフォルトのまま次へ
    6. 「サーバーの役割」は「Web サーバー(IIS)> Web サーバー > アプリケーション開発 > ASP.NET 4.7」を選択し次へ
      イメージ
    7. 「機能」はデフォルトのまま次へ
    8. 「確認」でインストールを実行する
  • Windows Server 2019に .NET Framework 4.8をインストールする。
    1. Microsoftのダウンロードサイトより .NET Framework 4.8をダウンロードする
    2. ダウンロードしたndp48-x86-x64-allos-enu.exeを実行する

デプロイするWebアプリケーションを作成する

  • Windows 10でWebアプリケーションを作成する。
    1. Visual Studioを起動する
    2. プロジェクトを作成する
    3. 「発行」>「フォルダー」
      イメージ
    4. プロジェクトを発行する
      デフォルトはVisual Studioソリューション\プロジェクト\bin\app.publishにWebアプリケーションが作成される

Webアプリケーションを配置する

  • Windows 10で作成したWebアプリケーション(フォルダ丸ごと)を、Windows Server 2019にコピーする
    • Windows 10(コピー元)Visual Studioソリューション\プロジェクト\bin\app.publish
    • Windows Server 2019(コピー先)デスクトップ

WebサーバーにWebアプリケーションを登録する

  • IISに元からあるDefault Web Sitehttp:80にWebアプリケーションを登録する。
    1. IISマネージャーを立ち上げる
    2. アプリケーションプールを追加する
      イメージ
      • 「.Net CLRバージョン」は、「.Net CLR バージョン v4.0.30319」にする
    3. 仮想ディレクトリを追加する
      イメージ
      イメージ
      • 「エイリアス」は、クライアントからアクセスするときのURLhttp://{ホスト名}:80/{エイリアス}の一部となる
      • 「物理パス」は、コピーしてきたWebアプリケーションのフォルダを指定する
    4. アプリケーションに変換する
      仮想ディレクトリをアプリケーションに変換する
      イメージ
      イメージ
      • 「アプリケーションプール」は、手順2で作成した「SampleWebApplication」を指定する

トラブルシューティング

  • 500.19エラー イメージ 原因は、web.configへのアクセス権がないためである。Webアプリケーションの実行ユーザー(アプリケーションプール)に、コピーしてきたWebアプリケーションのフォルダへのアクセス権を付与する。
    • アプリケーションの実行ユーザーIIS AppPool\{アプリケーションプール名=SampleWebApplication}
    • アプリケーションのフォルダデスクトップ\app.publish
  • 401.3エラー イメージ IISユーザーに、コピーしてきたWebアプリケーションのフォルダへのアクセス権を付与する。
    • IISユーザーIUSR
    • アプリケーションのフォルダデスクトップ\app.publish
  • 403.14エラー イメージ 記載されている対処方法を実施しても、ブラウザにフォルダが表示されるだけで解決しない。
    Webアプリケーションの実行環境をインストールするを実施すると解消する。つまり、実行環境の不足が原因。
  • サーバーエラー イメージ 原因は、.NET Framework 4.8がインストールされていないためである。.NET Framework 4.8をインストールする。

参考サイト