今回は、ASP.NET Core 3.1 MVC アプリの開発環境を WSL Ubuntu に準備します。
RDBMS は本業で SQLServer を10年近く使用しているため、SQLServer でと考えていましたが、SQL Server on Linux を動作させるためのマシンのメモリが、最低2GB要求されるため、今回は SQLite を使用します。
WSL Ubuntu 開発環境を構築
ローカル環境
Client OS | Windows10 |
WSL | Ubuntu 18.04.2 LTS |
Editor | Visual Studio Code |
SDK | ASP.NET Core 3.1 |
RDBMS | SQLite 3.22.0 |
WSL Ubuntu 18.04.2 LTS インストール
WSL に Ubuntu 18.04.2 LTS インストールする方法は、次の記事を参考にしてください。
.NET Core 3.1 SDK インストール
コマンドプロンプトを起動して、次のコマンドを実行します。
1 2 3 4 5 6 7 8 9 10 |
:: WSL Ubuntu に接続 wsl :: Microsoft キー・リポジトリを登録、必要な依存関係をインストール :: .NET Core SDK をインストール sudo wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt update sudo apt install apt-transport-https sudo apt update sudo apt install dotnet-sdk-3.1 |
Visual Studio Code インストール
Visual Studio Code インストール、Remote-WSL の設定は、こちらの記事を参考にしてください(Rust はインストールする必要ありません)
ASP.NET Core MVC プロジェクトの作成
WSL Ubuntu に接続して、次のコマンドを実行します。
1 2 3 4 5 6 7 8 9 10 |
// ホームディレクトリに移動 cd ~ // ディレクトリ作成 mkdir aspnetcore // プロジェクト作成 dotnet new mvc -au Individual -o <AspNetCore_Project> // プロジェクトファイルがあるディレクトリに移動 cd LinuxDeployWebApp // ASP.NET Core MVC プロジェクト を Visual Studio Code で起動 code . |
拡張機能インストール
次の拡張機能をインストールします。
- Debugger for Chrome
- C#
- EditorConfig for VS Code



NLog パッケージインストール
ASP.NET Core では、組み込みやサード パーティ製のさまざまなログプロバイダーと連携するログ API がサポートされています。公式ページにはログプロバイダーの一覧があります。その中で便利な NLog を使用します。
Visual Studio Code の Terminal から次のコマンドを実行します。
1 2 3 |
// NLog パッケージインストール sudo dotnet add package NLog.Web.AspNetCore --version 4.9.0 sudo dotnet add package NLog --version 4.6.8 |
NLog の設定方法は、Getting started with ASP.NET Core 3 を参考にしてください。
ASP.NET Core 2.x の NLog は、次の記事にまとめています。
Startup.cs
デフォルトで SQLite を使用するように構成されています。
デバッグ
デバッグ / 構成の追加をクリックして ”{} .NET: Launch a local .NET Core Web App” を選択します。次のように「launch.json」に構成が追加されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
{ // Use IntelliSense to find out which attributes exist for C# debugging // Use hover for the description of the existing attributes // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md "version": "0.2.0", "configurations": [ { "name": ".NET Core Launch (web)", "type": "coreclr", "request": "launch", "preLaunchTask": "build", // If you have changed target frameworks, make sure to update the program path. "program": "${workspaceFolder}/bin/Debug/netcoreapp3.1/<AspNetCore_Project.dll>", "args": [], "cwd": "${workspaceFolder}", "stopAtEntry": false, // Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser "serverReadyAction": { "action": "openExternally", "pattern": "^\\s*Now listening on:\\s+(https?://\\S+)" }, "env": { "ASPNETCORE_ENVIRONMENT": "Development" }, "sourceFileMap": { "/Views": "${workspaceFolder}/Views" } } ] } |
WSL 証明書を信頼するように Windows 証明書ストアを構成します。
1 2 |
:: WSL によって生成された証明書をエクスポート dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p <cryptic-password> |
「launch.json」に、次の環境変数を追加します。
1 2 |
"ASPNETCORE_Kestrel__Certificates__Default__Password": <cryptic-password>, "ASPNETCORE_Kestrel__Certificates__Default__Path": "/mnt/c/Users/<user_name>/.aspnet/https/aspnetapp.pfx", |
デバッグを実行します。トップページの Register リンクをクリックして、アカウントを登録します。

上記の図のようにログイン状態になると、アカウント登録は成功です。一応データベースの登録内容を確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
:: プロジェクトファイルのディレクトリに移動 cd ***** :: データベースに接続 sqlite3 app.db SQLite version 3.22.0 2018-01-22 18:45:57 Enter ".help" for usage hints. :: テーブル一覧を確認 sqlite>.table AspNetRoleClaims AspNetUserLogins AspNetUsers AspNetRoles AspNetUserRoles __EFMigrationsHistory AspNetUserClaims AspNetUserTokens :: 登録したアカウントを確認 sqlite> select * from AspNetUsers where Email = 'hogehoge@test.com'; 7e9cc5be-2015-4787-84a7-f83fcc1d1604|0|59d7d175-c9ce-4316-ace5-bb734cc2cd5f|hogehoge@test.com|0|1||HOGEHOGE@TEST.COM|HOGEHOGE@TEST.COM|AQAAAAEAACcQAAAAEDiHOOxMGyoMf0rRQK2fjvfo8sKkUkoJq+DO92QX5uOf7f8JvFIcsjdBjp984EESRA==||0|QTWXQRHRRE6YOTAZH7T2VCFS2HX7URW3|0|hogehoge@test.com |
今回作成した ASP.NET Core MVC アプリを WSL Ubuntu + Nginx でホストするのは、こちらをご覧ください。