نصب AspNetCore بروی Linux

سه شنبه 13 تیر 1396

راه اندازی AspNetCore بر روی سرور لینوکس

نصب AspNetCore بروی Linux

پس از نصب سیستم عامل Linux می بایست مراحل زیر انجام شود.

Ubuntu 14.04 / Linux Mint 17

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893

sudo apt-get update

Ubuntu 16.04

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list'

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893

sudo apt-get update

Ubuntu 16.10

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ yakkety main" > /etc/apt/sources.list.d/dotnetdev.list'

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893

sudo apt-get update

برای نصب AspNetCore باید کد زیر را اجرا نمایید

sudo apt-get install dotnet-dev-1.0.1

برای کار با dotnet می توانید از کدهای زیر استفاده نمایید

  Dotnet new           Initialize .NET projects.

  Dotnet restore       Restore dependencies specified in the .NET project.

  Dotnet build         Builds a .NET project.

  Dotnet publish       Publishes a .NET project for deployment (including the runtime).

  Dotnet run           Compiles and immediately executes a .NET project.

  Dotnet test          Runs unit tests using the test runner specified in the project.

  Dotnet pack          Creates a NuGet package.

  Dotnet migrate       Migrates a project.json based project to a msbuild based project                                                                             .

 Dotnet clean         Clean build output(s).

 Dotnet sln           Modify solution (SLN) files.

برای ایجاد پروژه جدید می توانید از کدهای زیر استفاده نمایید

Templates                 Short Name      Language      Tags

----------------------------------------------------------------------

Console Application       console         [C#], F#      Common/Console

Class library             classlib        [C#], F#      Common/Library

Unit Test Project         mstest          [C#], F#      Test/MSTest

xUnit Test Project        xunit           [C#], F#      Test/xUnit

ASP.NET Core Empty        web             [C#]          Web/Empty

ASP.NET Core Web App      mvc             [C#], F#      Web/MVC

ASP.NET Core Web API      webapi          [C#]          Web/WebAPI

Solution File             sln                           Solution

بعنوان مثال:

    dotnet new mvc --auth None --framework netcoreapp1.1

    dotnet new mstest --framework netcoreapp1.1

    dotnet new –help

پس از ایجاد پروژه باید مراحل زیر انجام دهید

در فایل Startup.cs برنامه ایجاد شده تغییرات زیر داده شود

Using Microsoft.AspNetCore.HttpOverrides

app.UseForwardedHeaders(new ForwardedHeadersOptions

            {

                ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto

            });

پس از ایجاد پروژه باید پروژه را پابلیش نمایید برای اینکار از کد زیر استفاده نمایید

Dotnet publish –output “path” –configuration release

نصب Nginx

sudo apt-get install nginx

sudo service nginx start

nano /etc/nginx/sites-available/default

محتوای فایل بازشده با متن زیر جایگزین کنید

server {

    listen 80;

    location / {

        proxy_pass http://localhost:5000;

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection keep-alive;

        proxy_set_header Host $host;

        proxy_cache_bypass $http_upgrade;

    }

}

sudo nginx –t

sudo nginx -s reload

sudo nano /etc/systemd/system/kestrel-hellomvc.service

[Unit]

    Description=Example .NET Web API Application running on Ubuntu

    [Service]

    WorkingDirectory=/var/aspnetcore/hellomvc

    ExecStart=/usr/bin/dotnet /var/aspnetcore/hellomvc/hellomvc.dll

    Restart=always

    RestartSec=10                                          # Restart service after 10 seconds if dotnet service crashes

    SyslogIdentifier=dotnet-example

    User=www-data

    Environment=ASPNETCORE_ENVIRONMENT=Production

    [Install]

    WantedBy=multi-user.target

systemctl enable kestrel-hellomvc.service

فایل های ضمیمه

ebrahimheirani

نویسنده 2 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید