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?

[Tips] IIS で Debug 版の ASP.Net を動かす設定

Posted at

超ニッチな Tips です。

ASP.Net WebAPI を作っていて、IIS 上に展開する際、本番系だけでなく、テスト系(構成が Debug のやつ)も動作させたいことがあると思います。

開発時の appsettings.Development.json と appsettings.Production.json をそのまま生かして IIS に乗せる方法のメモを残しておきます。

前提条件

開発系と本番系でデータベースが異なっていて、Visual Studio の構成の切り替えで、接続を変えるようなWebAPI サーバだったとします。
なお、テスト系データベースサーバが 192.168.50.100、本番系データベースサーバが 192.168.100.100 とします。

appsettings.json の設定

本番系とテスト系で appsettings.json の内容を切り替えるために、次のようになっているかと思います。

appsettings.json
{
  "ConnectionStrings": {
  }
}
appsettings.Development.json
{
  "ConnectionStrings": {
    "mydb":"Server=192.168.50.100;Database=MyAppDb;User Id=myuser;Password=mypassword"
  }
}    
appsettings.Production.json
{
  "ConnectionStrings": {
    "mydb":"Server=192.168.100.100;Database=MyAppDb;User Id=myuser;Password=mypassword"
  }
}    

IIS の設定

IIS には、本番系とテスト系のアプリを登録しておきます。
当然、ファイルパスやポートは別のものにしておきます。

図では webapp がテスト系で、webapps が本番系です。

Visual Studio の発行では、本番系とテスト系の2つの発行設定を作成します。
本番系の発行では、構成を「Release」、ターゲットを「webapps」に、テスト系の発行では、構成を「Debug」、ターゲットを「webapp」にしておきます。

IIS のアプリごとの設定

IIS に登録したアプリが、指定の appsettings.*.json を読むように設定します。

テスト系の webapp で、appsettings.Development.json を読ませるため、次の設定を行います。

  1. webapp の構成エディタをダブルクリックします
  2. 構成エディタの設定画面でセクションを「system.webServer/aspNetCore」に切り替えます
  3. environmentVariables を選択し「項目の編集」をクリックします
  4. コレクションエディターが表示されます
  5. 名前に ASPNETCORE_ENVIRONMENT、値に Development を登録します
  6. 設定を保存しアプリの設定をリロードします

この設定でテスト系のアプリで appsettings.Development.json を読んでくれるようになります。

本番系は ASPNETCORE_ENVIRONMENT が指定されていない場合、自動的に Production として扱われるため、明示的な設定は不要です。ただし、明示的に設定しておくこともできます。

追加メモ

IIS の構成エディタでの設定を記載しましたが、環境変数による切り替えですので web.config に直接記述する方法や、システム環境変数で設定する方法もあります。

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?