(更新 2019/1/26)外部から80番ポートに接続する設定
Windows上のVisual Studio 2017 Community で作成した「MVC WEBアプリ(.net core 2.0)」は、
.NET Core 2.0 SDK導入済みのLinuxマシン上に、プログラムデータフォルダごと持って来て、
dotnet runコマンドを実行するだけで、そのまま動作させることができた。
■(準備).NET Core 2.0 などのセットアップ方法について
○Windowsマシンへの「.NET Core 2.0 SDK」、「VS 2017 Community」 の導入は次のようにして行った。
http://akira-arets.blogspot.jp/2017/08/windows81-install-dotnetcore2sdk-vs2017.html
○Linuxマシンへの.NET Core 2.0 SDK 導入は次のようにして行った。
http://akira-arets.blogspot.jp/2017/08/linux-centos7-netcore2-helloworld.html
■まず、Windows上Visual Studio 2017 Communityで、サンプルMVC WEBアプリを作成した。
Windows上のVS 2017 communityで、WEBアプリ(.net core 2.0)テンプレートから、
テスト用WEBアプリを作成し、保存した。
ところで、これは、MVC WEBアプリ版のHello Worldのようなものである。
これをベースにして自分で、コントローラー、アクション、ビューを追加していけた。
デフォルトで、以下の場所に保存された。
C:\Users\myname\source\repos\testWebApplication1\
このフォルダにある、同名「testWebApplication1」を、zipで圧縮し、適当な方法で、
.NET Core 2.0 SDKを導入済みのLinuxマシンにコピーし解凍した。
<以下は、このLinuxマシン(.NET Core 2.0 SDK導入済み)での操作である。>
■次に、VS 2017 Communityで作成したテスト用WEBアプリをLinux上で実行した。
$ cd testWebApplication1
$ ls
Controllers Program.cs Startup.cs appsettings.Development.json bin bundleconfig.json testWebApplication1.csproj wwwroot
Models Properties Views appsettings.json bower.json obj testWebApplication1.csproj.user
テスト用WEBアプリを実行した。
(もしここでroot権限で動作させた場合、このアプリでは次回以降もroot権限が必要になった。)
$ dotnet run
/home/myname/testWebApplication1/testWebApplication1/Properties/launchSettings.json からの起動設定を使用中...
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
User profile is available. Using '/root/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[58]
Creating key {b2f7073b-fd26-478d-8895-6e7484676238} with creation date 2017-08-30 16:53:28Z, activation date 2017-08-30 16:53:28Z, and expiration date 2017-11-28 16:53:28Z.
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
No XML encryptor configured. Key {b2f7073b-fd26-478d-8895-6e7484676238} may be persisted to storage in unencrypted form.
info: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[39]
Writing data to file '/root/.aspnet/DataProtection-Keys/key-b2f7073b-fd26-478d-8895-6e7484676238.xml'.
Hosting environment: Development
Content root path: /home/myname/testWebApplication1/testWebApplication1
Now listening on: http://localhost:49293Application started. Press Ctrl+C to shut down.
○動作確認○
ここで、ローカルのブラウザから、上記に指定されたアドレスにアクセスした。
すると、MVCや、BootStrap を活用したサンプルページが表示された。
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1]
Executing action method testWebApplication1.Controllers.HomeController.Index (testWebApplication1) with arguments ((null)) - ModelState is Valid
info: Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.ViewResultExecutor[1]
Executing ViewResult, running view at path /Views/Home/Index.cshtml.
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[2]
Executed action testWebApplication1.Controllers.HomeController.Index (testWebApplication1) in 5734.6912ms
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 5997.6831ms 200 text/html; charset=utf-8
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/lib/bootstrap/dist/css/bootstrap.css
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/css/site.css
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/css/site.css'. Physical path: '/home/myname/testWebApplication1/testWebApplication1/wwwroot/css/site.css'
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/lib/bootstrap/dist/css/bootstrap.css'. Physical path: '/home/myname/testWebApplication1/testWebApplication1/wwwroot/lib/bootstrap/dist/css/bootstrap.css'
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 42.4335ms 200 text/css
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/lib/jquery/dist/jquery.js
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/lib/jquery/dist/jquery.js'. Physical path: '/home/myname/testWebApplication1/testWebApplication1/wwwroot/lib/jquery/dist/jquery.js'
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 80.2129ms 200 text/css
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 28.1376ms 200 application/javascript
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/lib/bootstrap/dist/js/bootstrap.js
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/lib/bootstrap/dist/js/bootstrap.js'. Physical path: '/home/myname/testWebApplication1/testWebApplication1/wwwroot/lib/bootstrap/dist/js/bootstrap.js'
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 5.6164ms 200 application/javascript
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/js/site.js?v=7mkNbU1tgQL1bUeZe3j2R151hKLhLDKO4BBaR-iqCy0
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/images/banner1.svg
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/js/site.js'. Physical path: '/home/myname/testWebApplication1/testWebApplication1/wwwroot/js/site.js'
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 9.1577ms 200 application/javascript
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/images/banner2.svg
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/images/banner2.svg'. Physical path: '/home/myname/testWebApplication1/testWebApplication1/wwwroot/images/banner2.svg'
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 2.9037ms 200 image/svg+xml
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/images/banner3.svg
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/images/banner3.svg'. Physical path: '/home/myname/testWebApplication1/testWebApplication1/wwwroot/images/banner3.svg'
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 8.067ms 200 image/svg+xml
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/images/banner4.svg
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/images/banner4.svg'. Physical path: '/home/myname/testWebApplication1/testWebApplication1/wwwroot/images/banner4.svg'
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/images/banner1.svg'. Physical path: '/home/myname/testWebApplication1/testWebApplication1/wwwroot/images/banner1.svg'
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 29.3217ms 200 image/svg+xml
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 6.9818ms 200 image/svg+xml
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2'. Physical path: '/home/myname/testWebApplication1/testWebApplication1/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2'
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 0.7479ms 200 font/woff2
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://localhost:49293/favicon.ico
info: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[2]
Sending file. Request path: '/favicon.ico'. Physical path: '/home/myname/testWebApplication1/testWebApplication1/wwwroot/favicon.ico'
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
Request finished in 0.7905ms 200 image/x-icon
○「CTRL+C」を押して、WEBアプリを終了した○
^CApplication is shutting down...
■httpサーバのポートを80にし、外部のマシンからの接続を受け付ける方法
動作中の dotnet run コマンドは、CTRL+C で止めておく。
プロジェクト内の次のファイルに下記のように1行追加して、
dotnet run コマンドで起動しなおす。
# cat Program.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
namespace test
{
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseUrls(urls: "http://0.0.0.0:80")
.Build();
}
}
以上
新品価格
¥3,456から (2018/5/21 15:43時点) |
<参考>
・Setting ASP.NET host address in .NET Core 2
< https://www.billbogaiv.com/posts/setting-aspnet-host-address-in-net-core-2 > 2019年1月26日
・ASP.NET CoreのWebApplicationを外部公開
< https://qiita.com/husky774rr/items/256609e9d126653274f0 > 2019年1月26日