Linux(CentOS7) + apache で、ASP.NET Core サンプルアプリを動かす
クラウド全盛のご時世のなか、ウチは今だに自宅サーバで各種運用をやっております。
(元エンタプライズCEでしたので、ハードウェアが手元に無いと落ち着かないんです。)
Microsoftが、Linuxでも動作するプラットフォーム「.NET Core」を発表して約半年。
2016年11月16日に初のCurrentリリースとなる、.NET Core 1.1が公開されました。
サードパーティライブラリだった「mono」と違い、「.NET Core」はMicrosoftが公式にサポートをしています。
ウチは今までサーバサイドをPHPで作ってきたけど、今後はVisual Studioで開発出来る!やったね!
ということで、早速ためしてみました。
1.CentOS6.8でトライ
ウチのサーバはCentOS6.8でした。
出来れば更新なしで進めたかったのですが、試しに公式のバイナリをコピーして実行してみたところ、
[root@localhost dotnet]# ls -alF /opt/dotnet/
合計 168
drwxrwxrwx. 5 root root 4096 12月 3 00:51 2016 ./
drwxr-xr-x. 3 root root 4096 12月 3 00:41 2016 ../
-rwxr--r--. 1 root root 9410 11月 3 08:49 2016 LICENSE.txt*
-rwxr--r--. 1 root root 8103 11月 3 08:49 2016 ThirdPartyNotices.txt*
-rwxr--r--. 1 root root 128693 11月 9 06:52 2016 dotnet*
drwxr-xr-x. 3 root root 4096 12月 3 00:51 2016 host/
drwxr-xr-x. 4 root root 4096 12月 3 00:51 2016 sdk/
drwxr-xr-x. 3 root root 4096 12月 3 00:51 2016 shared/
[root@localhost dotnet]# /opt/dotnet/dotnet
/opt/dotnet/dotnet: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /opt/dotnet/dotnet)
/opt/dotnet/dotnet: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by /opt/dotnet/dotnet)
/opt/dotnet/dotnet: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /opt/dotnet/dotnet)
/opt/dotnet/dotnet: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /opt/dotnet/dotnet)
[root@localhost dotnet]#
うむむ。libstdc++.so の中のナニヤラのバージョンが古い、と?
[root@localhost dotnet]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
確かに、GLIBCXX は 3.4.13 までしか入っていません。
このあと Devtoolsetリポジトリから新しいgccを入れるなど足掻いたのですが、残念ながら現象は変わらず。
手動でmake, installするのは、今後の管理の手間的にどうも...。
というわけで、サーバをCentOS7に入れなおすことにしました。
2.CentOS7.2で再挑戦
さて、リベンジ。
公式手順の1番から、libunwind、libicu を yum でインストール。
[root@centos7 ~]# yum install libunwind libicu
読み込んだプラグイン:fastestmirror
base | 3.6 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
(1/4): base/7/x86_64/group_gz | 155 kB 00:00
(2/4): extras/7/x86_64/primary_db | 166 kB 00:00
(3/4): base/7/x86_64/primary_db | 5.3 MB 00:00
(4/4): updates/7/x86_64/primary_db | 9.1 MB 00:04
Determining fastest mirrors
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ libicu.x86_64 0:50.1.2-15.el7 を インストール
---> パッケージ libunwind.x86_64 2:1.1-5.el7_2.2 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
インストール中:
libicu x86_64 50.1.2-15.el7 base 6.9 M
libunwind x86_64 2:1.1-5.el7_2.2 updates 56 k
トランザクションの要約
================================================================================
インストール 2 パッケージ
総ダウンロード容量: 6.9 M
インストール容量: 24 M
Is this ok [y/d/N]: y
Downloading packages:
警告: /var/cache/yum/x86_64/7/updates/packages/libunwind-1.1-5.el7_2.2.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY
libunwind-1.1-5.el7_2.2.x86_64.rpm の公開鍵がインストールされていません
(1/2): libunwind-1.1-5.el7_2.2.x86_64.rpm | 56 kB 00:00
libicu-50.1.2-15.el7.x86_64.rpm の公開鍵がインストールされていません 00:00 ETA
(2/2): libicu-50.1.2-15.el7.x86_64.rpm | 6.9 MB 00:01
--------------------------------------------------------------------------------
合計 4.8 MB/s | 6.9 MB 00:01
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
Package : centos-release-7-2.1511.el7.centos.2.10.x86_64 (@anaconda)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : 2:libunwind-1.1-5.el7_2.2.x86_64 1/2
インストール中 : libicu-50.1.2-15.el7.x86_64 2/2
検証中 : libicu-50.1.2-15.el7.x86_64 1/2
検証中 : 2:libunwind-1.1-5.el7_2.2.x86_64 2/2
インストール:
libicu.x86_64 0:50.1.2-15.el7 libunwind.x86_64 2:1.1-5.el7_2.2
完了しました!
[root@centos7 ~]#
yumリポジトリに epel 等を追加することも無く、そのまま yum install が通りました。
公式手順では、curl でtar玉を貰ってくるのですが、手元に解凍済のものを用意していたので、samba経由で /opt/dotnet/ にコピーしました。
ファイルがコピーされたのを確認して...
[root@centos7 ~]# ls -alF /opt/dotnet/
合計 148
drwxr-xr-x. 5 root root 99 12月 2 16:35 ./
drwxr-xr-x. 3 root root 19 12月 2 16:31 ../
-rwxr--r--. 1 root root 9410 11月 3 08:49 LICENSE.txt*
-rwxr--r--. 1 root root 8103 11月 3 08:49 ThirdPartyNotices.txt*
-rwxr--r--. 1 root root 128693 11月 9 06:52 dotnet*
drwxr-xr-x. 3 root root 16 12月 2 16:35 host/
drwxr-xr-x. 3 root root 36 12月 2 16:35 sdk/
drwxr-xr-x. 3 root root 34 12月 2 16:35 shared/
シンボリックリンクを作ります。
さてさて、dotnet コマンドは動くでしょうか...?
[root@centos7 ~]# dotnet --version
1.0.0-preview2-1-003177
おお!きましたね!
公式のCentOS7 - .NET Core インストール手順はこちら。
3.ひとつ前の.NET Coreも入れておく
Currentリリースのバージョンは 1.1.0 ですが、一つ前のバージョン 1.0.1も併せて入れておきます。
何故かと言うと、Visual Studio 2015 Update3 で作られる ASP.NET Coreテンプレートプロジェクトの対応バージョンが、1.0.1 だからです。
インストールと言っても、バイナリをコピーするだけです。
古い方の解凍済みフォルダから、「host」「sdk」「shared」の3つのフォルダを、CentOS側の /opt/dotnet/ にコピーします。
コピー先のサブフォルダはバージョンごとに分かれているので、上書き警告されることもありません。
4.サンプルプロジェクトを作る
Linux側の準備が整ったので、動作確認用のサンプルプロジェクトを作ります。
「Visual Studioで開発し、Linuxで運用する」が目的なので、プロジェクトはWindowsの Visual Studio 2015 Update3 で作ります。
テンプレートは、VisualC# → .NET Core → ASP.NET Core Web Application(.NET Core)を選びます。
さらにテンプレートの目的詳細を決められるようです。
ひとまずUIが動いている様子が見たいので、「Webアプリケーション」を選びます。
Visual Studioが作ったテンプレートを、そのままビルドして実行してみます。
IIS Express経由での動作風景は、.NETerの皆様にはお馴染みですね。
5.Linuxでサンプルプロジェクトを実行
さて、このプロジェクトを Linux に持って行ってみましょう。
sambaでプロジェクト用のフォルダ /home/sample を共有設定し、プロジェクトファイル一式をコピーします。
無事にファイルがコピーされております。
[root@centos7 sample]# ls -alF /home/sample
合計 8
drwxr-xr-x. 4 root root 70 12月 2 17:25 ./
drwxr-xr-x. 4 root root 33 12月 2 17:00 ../
drwxr-xr-x. 4 root root 58 12月 2 17:25 .vs/
-rwxr--r--. 1 root root 1519 12月 2 17:08 WebApplication1.sln*
-rwxr--r--. 1 root root 100 12月 2 17:07 global.json*
drwxr-xr-x. 3 root root 28 12月 2 17:25 src/
プロジェクトをビルドするには、プロジェクト設定ファイル「project.json」があるフォルダまで移動します。
[root@centos7 sample]# cd /home/sample/src/WebApplication1/
[root@centos7 WebApplication1]# ls -alF
合計 484
drwxr-xr-x. 8 root root 4096 12月 2 17:25 ./
drwxr-xr-x. 3 root root 28 12月 2 17:25 ../
-rwxr--r--. 1 root root 36 12月 2 17:07 .bowerrc*
drwxr-xr-x. 2 root root 30 12月 2 17:25 Controllers/
-rwxr--r--. 1 root root 578 12月 2 17:07 Program.cs*
-rwxr--r--. 1 root root 6850 12月 2 17:07 Project_Readme.html*
drwxr-xr-x. 2 root root 32 12月 2 17:25 Properties/
-rwxr--r--. 1 root root 2025 12月 2 17:07 Startup.cs*
drwxr-xr-x. 4 root root 80 12月 2 17:25 Views/
-rwxr--r--. 1 root root 1295 12月 2 17:07 WebApplication1.xproj*
-rwxr--r--. 1 root root 241 12月 2 17:08 WebApplication1.xproj.user*
-rwxr--r--. 1 root root 178 12月 2 17:07 appsettings.json*
drwxr-xr-x. 3 root root 18 12月 2 17:25 bin/
-rwxr--r--. 1 root root 207 12月 2 17:07 bower.json*
-rwxr--r--. 1 root root 627 12月 2 17:07 bundleconfig.json*
drwxr-xr-x. 3 root root 18 12月 2 17:25 obj/
-rwxr--r--. 1 root root 1851 12月 2 17:07 project.json* <-- コレです
-rwxr--r--. 1 root root 439818 12月 2 17:08 project.lock.json*
-rwxr--r--. 1 root root 565 12月 2 17:07 web.config*
drwxr-xr-x. 6 root root 87 12月 2 17:25 wwwroot/
いよいよビルド。
まずは、nuget-packageを復旧させます。
[root@centos7 WebApplication1]# dotnet restore
Welcome to .NET Core!
---------------------
Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.
Telemetry
--------------
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include commandline arguments. The data is collected by Microsoft and shared with the community.
You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
Configuring...
-------------------
A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
Decompressing 100% 3335 ms
Expanding 100% 6930 ms
log : Restoring packages for /home/sample/src/WebApplication1/project.json...
log : Installing NuGet.Configuration 3.5.0-beta2-1484.
log : Installing NuGet.Protocol.Core.Types 3.5.0-beta2-1484.
log : Installing NuGet.Protocol.Core.v3 3.5.0-beta2-1484.
log : Installing NuGet.Repositories 3.5.0-beta2-1484.
log : Installing NuGet.LibraryModel 3.5.0-beta2-1484.
log : Installing NuGet.Packaging.Core.Types 3.5.0-beta2-1484.
log : Installing Microsoft.AspNetCore.Cryptography.Internal 1.0.0.
log : Installing Microsoft.AspNetCore.DataProtection.Abstractions 1.0.0.
log : Installing Microsoft.DotNet.InternalAbstractions 1.0.0.
log : Installing Microsoft.AspNetCore.Routing.Abstractions 1.0.0.
log : Installing NuGet.DependencyResolver.Core 3.5.0-beta2-1484.
log : Installing NuGet.Packaging.Core 3.5.0-beta2-1484.
log : Installing NuGet.Common 3.5.0-beta2-1484.
log : Installing NuGet.RuntimeModel 3.5.0-beta2-1484.
log : Installing Microsoft.AspNetCore.DataProtection 1.0.0.
log : Installing Microsoft.Extensions.DependencyModel 1.0.0.
log : Installing Microsoft.Extensions.Logging.Debug 1.0.0.
log : Installing Microsoft.Extensions.Logging 1.0.0.
log : Installing Microsoft.Extensions.Logging.Console 1.0.0.
log : Installing Microsoft.Extensions.Configuration.EnvironmentVariables 1.0.0.
log : Installing Microsoft.AspNetCore.Mvc.Abstractions 1.0.1.
log : Installing Microsoft.Extensions.Configuration.Json 1.0.0.
log : Installing Microsoft.VisualStudio.Web.BrowserLink.Loader 14.0.0.
log : Installing Microsoft.Extensions.Options.ConfigurationExtensions 1.0.0.
log : Installing Microsoft.AspNetCore.Diagnostics 1.0.0.
log : Installing Microsoft.AspNetCore.StaticFiles 1.0.0.
log : Installing Microsoft.AspNetCore.Routing 1.0.1.
log : Installing Microsoft.AspNetCore.Server.IISIntegration 1.0.0.
log : Installing Microsoft.AspNetCore.Server.Kestrel 1.0.1.
log : Installing Microsoft.AspNetCore.Mvc 1.0.1.
log : Installing Microsoft.AspNetCore.Razor.Tools 1.0.0-preview2-final.
log : Installing Microsoft.Extensions.Logging.Abstractions 1.0.0.
log : Installing Microsoft.Extensions.DependencyInjection.Abstractions 1.0.0.
log : Installing Microsoft.Extensions.Configuration.Abstractions 1.0.0.
log : Installing Microsoft.AspNetCore.Http.Abstractions 1.0.0.
log : Installing Microsoft.Extensions.Options 1.0.0.
log : Installing Microsoft.Extensions.Configuration.Binder 1.0.0.
log : Installing Microsoft.AspNetCore.Diagnostics.Abstractions 1.0.0.
log : Installing Microsoft.AspNetCore.WebUtilities 1.0.0.
log : Installing Microsoft.AspNetCore.Hosting.Abstractions 1.0.0.
log : Installing Microsoft.AspNetCore.Http.Extensions 1.0.0.
log : Installing Microsoft.Extensions.FileProviders.Abstractions 1.0.0.
log : Installing Microsoft.Extensions.WebEncoders 1.0.0.
log : Installing Microsoft.Extensions.ObjectPool 1.0.0.
log : Installing Microsoft.AspNetCore.Routing.Abstractions 1.0.1.
log : Installing Microsoft.AspNetCore.HttpOverrides 1.0.0.
log : Installing Microsoft.AspNetCore.Http 1.0.0.
log : Installing Microsoft.AspNetCore.Hosting 1.0.0.
log : Installing Microsoft.Extensions.FileProviders.Physical 1.0.0.
log : Installing System.Runtime.Serialization.Primitives 4.1.1.
log : Installing Microsoft.Extensions.Configuration.FileExtensions 1.0.0.
log : Installing Microsoft.Extensions.DependencyInjection 1.0.0.
log : Installing Microsoft.Extensions.Caching.Memory 1.0.0.
log : Installing Microsoft.AspNetCore.Authorization 1.0.0.
log : Installing Microsoft.AspNetCore.Mvc.TagHelpers 1.0.1.
log : Installing Newtonsoft.Json 9.0.1.
log : Installing Microsoft.Extensions.PlatformAbstractions 1.0.0.
log : Installing Microsoft.AspNetCore.Mvc.Razor 1.0.1.
log : Installing Microsoft.Extensions.Configuration 1.0.0.
log : Installing Microsoft.AspNetCore.Mvc.Localization 1.0.1.
log : Installing Microsoft.AspNetCore.Mvc.DataAnnotations 1.0.1.
log : Installing Microsoft.AspNetCore.Mvc.ApiExplorer 1.0.1.
log : Installing Microsoft.AspNetCore.Mvc.Cors 1.0.1.
log : Installing Microsoft.AspNetCore.Mvc.Formatters.Json 1.0.1.
log : Installing Microsoft.AspNetCore.Mvc.ViewFeatures 1.0.1.
log : Installing Microsoft.Extensions.CommandLineUtils 1.0.0.
log : Installing Microsoft.AspNetCore.Razor.Runtime 1.0.0.
log : Installing Microsoft.DotNet.ProjectModel.Loader 1.0.0-preview2-003121.
log : Installing Microsoft.DotNet.Cli.Utils 1.0.0-preview2-003121.
log : Installing Microsoft.Extensions.Primitives 1.0.0.
log : Installing Microsoft.Extensions.FileSystemGlobbing 1.0.0.
log : Installing System.Text.Encodings.Web 4.0.0.
log : Installing Microsoft.AspNetCore.Http.Features 1.0.0.
log : Installing System.ComponentModel.TypeConverter 4.1.0.
log : Installing Microsoft.AspNetCore.Hosting.Server.Abstractions 1.0.0.
log : Installing Microsoft.Net.Http.Headers 1.0.0.
log : Installing Microsoft.Extensions.Caching.Abstractions 1.0.0.
log : Installing Microsoft.Extensions.FileProviders.Composite 1.0.0.
log : Installing Microsoft.AspNetCore.Mvc.Razor.Host 1.0.1.
log : Installing Microsoft.Extensions.Localization 1.0.0.
log : Installing Microsoft.AspNetCore.Localization 1.0.0.
log : Installing Microsoft.AspNetCore.Mvc.Core 1.0.1.
log : Installing Microsoft.AspNetCore.Cors 1.0.0.
log : Installing Microsoft.AspNetCore.JsonPatch 1.0.0.
log : Installing Microsoft.AspNetCore.Html.Abstractions 1.0.0.
log : Installing Microsoft.AspNetCore.Antiforgery 1.0.1.
log : Installing Microsoft.AspNetCore.Razor 1.0.0.
log : Installing Microsoft.DotNet.ProjectModel 1.0.0-rc3-003121.
log : Installing NuGet.Frameworks 3.5.0-beta2-1484.
log : Installing NuGet.Versioning 3.5.0-beta2-1484.
log : Installing NuGet.Packaging 3.5.0-beta2-1484.
log : Installing NuGet.ProjectModel 3.5.0-beta2-1484.
log : Installing System.Net.WebSockets 4.0.0.
log : Installing System.ComponentModel.Primitives 4.1.0.
log : Installing System.Collections.Specialized 4.0.1.
log : Installing System.Collections.NonGeneric 4.0.1.
log : Installing System.Diagnostics.Contracts 4.0.1.
log : Installing Microsoft.Extensions.Localization.Abstractions 1.0.0.
log : Installing Microsoft.Extensions.Globalization.CultureInfoCache 1.0.0.
log : Restoring packages for tool 'BundlerMinifier.Core' in /home/sample/src/WebApplication1/project.json...
log : Installing Microsoft.NETCore.Jit 1.0.2.
log : Installing Microsoft.NETCore.Runtime.CoreCLR 1.0.2.
log : Installing Microsoft.NETCore.App 1.0.0.
log : Installing NUglify 1.5.0.
log : Installing BundlerMinifier.Core 2.0.238.
log : Restoring packages for tool 'Microsoft.AspNetCore.Razor.Tools' in /home/sample/src/WebApplication1/project.json...
log : Restoring packages for tool 'Microsoft.AspNetCore.Server.IISIntegration.Tools' in /home/sample/src/WebApplication1/project.json...
log : Installing Microsoft.AspNetCore.Server.IISIntegration.Tools 1.0.0-preview2-final.
log : Writing lock file to disk. Path: /home/sample/src/WebApplication1/project.lock.json
log : /home/sample/src/WebApplication1/project.json
log : Restore completed in 27758ms.
レストア完了!
ではビルドが通るか、試してみます。
[root@centos7 WebApplication1]# dotnet build
Project WebApplication1 (.NETCoreApp,Version=v1.0) will be compiled because the version or bitness of the CLI changed since the last build
Compiling WebApplication1 for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:02.6629985
問題なさげ。
いよいよ、実行してみます!
[root@centos7 WebApplication1]# dotnet run
Project WebApplication1 (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
Hosting environment: Production
Content root path: /home/sample/src/WebApplication1
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
おお!
localhost:5000 でlisteningしてるそうです!
れっつアクセス!
できねえええええええ!
...はい。.NETerの皆様は薄々お気づきかもしれませんね。
Visual Studioから起動するIIS Expressと同じく、ホスト名までカッチリ合わせてアクセスしないと、弾かれてしまうんですね。
とはいえ、開発機のWindowsから "localhost" で 別機にアクセスできるはずもなく。
しょーがないなあ、ということで、apacheのリバースプロキシを経由させます。
ググって出てくるのは Nginx の設定例が多いんですが、要はリバースプロキシが動けばいいわけですね。
apacheのインストール、セットアップです。
[root@centos7 WebApplication1]# yum -y install httpd
…中略…
[root@centos7 WebApplication1]# vi /etc/httpd/conf/httpd.conf
-<Directory />
- AllowOverride none
- Require all denied
-</Directory>+#<Directory />
+# AllowOverride none
+# Require all denied
+#</Directory>+ProxyPreserveHost On
+ProxyPass / http://localhost:5000/
+ProxyPassReverse / http://localhost:5000/
CentOSでは、 apache を入れると mod_proxy も一緒に入ってきます。
上記の httpd.conf では、apache に来た全てのアクセスを、まるごと全部5000番ポートに投げつける乱暴仕様になっています。
本番環境では、VirtualHost やサブフォルダだけをプロキシに投げるように、調整してくださいね。
さて!
リベンジです。
[root@centos7 WebApplication1]# systemctl start httpd
[root@centos7 WebApplication1]# pwd
/home/sample/src/WebApplication1
[root@centos7 WebApplication1]# dotnet run
Project WebApplication1 (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
Hosting environment: Production
Content root path: /home/sample/src/WebApplication1
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
実行は相変わらずエラーもなく、問題なさげ。
ブラウザから開いてみます。
今度は apache がデフォルトの 80番ポートで待機中なので、ポート指定なしで試してみます。
うほっ!!
動いとる!!
実行中のコンソールに、いろいろログがでてます。
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://192.168.254.42/
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1]
Executing action method WebApplication1.Controllers.HomeController.Index (WebApplication1) with arguments () - ModelState is Valid
info: Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.ViewResultExecutor[1]
Executing ViewResult, running view at path /Views/Home/Index.cshtml.
info: Microsoft.Extensions.DependencyInjection.DataProtectionServices[0]
User profile is available. Using '/root/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[2]
Executed action WebApplication1.Controllers.HomeController.Index (WebApplication1) in 2505.8604ms
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 2782.7155ms 200 text/html; charset=utf-8
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://192.168.254.42/images/banner4.svg
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://192.168.254.42/images/banner3.svg
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/images/banner4.svg'. Physical path: '/home/sample/src/WebApplication1/wwwroot/images/banner4.svg'
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/images/banner3.svg'. Physical path: '/home/sample/src/WebApplication1/wwwroot/images/banner3.svg'
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 56.4822ms 200 image/svg+xml
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 55.3459ms 200 image/svg+xml
なるほどなるほど。
コントローラやら画像やらのアクセスを書き出してくれてるらしい?
ひとまず、動作確認が出来ました!
Visual Studioが生成するテンプレートのままです。