0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【IIS】【Minmal API】初めてIISでWebAPIを立ち上げてみた

Last updated at Posted at 2025-05-12

はじめに

これまで IIS を利用して .NET の Web サーバーを立てたことがなかったので、ハンズオン形式でサイトを立ててみました。
仕事では既に構築された IIS 上の Web サーバーを扱ったことはありましたが、最初から立てるのは今回が初めてです。
この記事では、.NET の Minimal API を作成し、IIS 上でホストするまでの手順を紹介します。

手順

Step 1: プロジェクトの作成

Visual Studio の GUI から ASP.NET Core Webアプリケーション を選択してプロジェクトを作成しました。

作成後、Minimal API として動作させるため、Program.cs を以下のように編集しました。

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello, World!");
app.MapGet("/api/greet/{name}", (string name) => $"Hello, {name}!");

app.Run();

Step 2: IIS の準備

  1. Windows の機能の有効化から インターネット インフォメーション サービス (IIS)インターネット インフォメーション サービスのホスト可能な Web コア を有効化してください。
  2. IIS マネージャーを開きます。

Step 3: アプリケーションの発行

以下のコマンドでリリースビルドを行い、成果物を生成します。

dotnet publish -c Release

-c Release はリリースモードでのビルドを意味します。
ビルドが成功すると、bin/Release/net8.0/publish フォルダに成果物が生成されます。これが IIS でホスティングする対象になります。

Step 4: IIS への配置

  1. IIS マネージャーを開き、サイトの追加 を選択します。
  2. 物理パスに publish フォルダの絶対パスを指定します。
  3. ポート番号を設定し、サイト名を入力します。
  4. 設定後、ブラウザで http://localhost:ポート番号/ にアクセスします。
  5. 「4」で無事にアクセスできたら、同一ネットワーク上の他のデバイス(例: スマホ)からもアクセスできるか確認しました。ファイアウォールの設定にて、今回使用するポートの受信を許可することでアクセスできました。

発生したエラーとその対応

もし URLアクセス時にHTTP Error 500.19 - Internal Server Error が発生した場合、以下の原因が考えられます。

:triangular_flag_on_post: 原因1: ASP.NET Core Hosting Bundle がインストールされていない

  • 対応方法:ASP.NET Core ランタイムを公式サイトからダウンロードし、インストールしてください。

:triangular_flag_on_post: 原因2: web.config の構文エラー

  • 対応方法:processPathdotnet から publish フォルダ内の .exe に変更してください。

:triangular_flag_on_post: 原因3: リリース成果物フォルダのアクセス権限が不足

  • 対応方法:publish フォルダの「読み取り」と「実行」権限を IIS_IUSRS に付与してください。

おわりに

今回のハンズオンでは、IIS 上で .NET の Minimal API をホスティングする方法を学びました。
IIS 上で新規サービスの立ち上げ手順を一通り学んだことで、今後の業務に役立てられると感じています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?