投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償、寄付歓迎) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2017年8月31日木曜日

【Linux CentOS 7】VS2017で作成したサンプル.NET Core 2.0 MVC WEBアプリをLinuxでそのまま実行させる【.NET Core 2.0】

(更新 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日

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad