• Contact
  • Contact Us
  • Disclamer
  • Home 1
  • Home 2
  • Home 3
  • Privacy Policy
Friday, May 9, 2025
How VPS - How to use/setup VPS
  • Login
  • Home
  • Management guides
    • Web servers software
      • Directadmin
      • Hocvps Script
      • Centmin Mod
      • CWP
      • Kloxo-MR
      • Plesk
    • Control Panels
    • Securing VPS/Servers
      • SSL Certificates
      • Upgrading
      • Authentication
  • Operating System
    • CentOS
    • Fedora
    • Debian
    • Linux
    • Arch
    • BSD
    • CoreOS
  • Reviews
  • Coupon
    • Domain Coupon
    • Hosting Coupon
No Result
View All Result
  • Home
  • Management guides
    • Web servers software
      • Directadmin
      • Hocvps Script
      • Centmin Mod
      • CWP
      • Kloxo-MR
      • Plesk
    • Control Panels
    • Securing VPS/Servers
      • SSL Certificates
      • Upgrading
      • Authentication
  • Operating System
    • CentOS
    • Fedora
    • Debian
    • Linux
    • Arch
    • BSD
    • CoreOS
  • Reviews
  • Coupon
    • Domain Coupon
    • Hosting Coupon
No Result
View All Result
How VPS - How to use/setup VPS
No Result
View All Result
Home Operating System CentOS

How to Deploy a .NET Core Web Application on CentOS 7

How VPS by How VPS
October 1, 2019
in CentOS
0
0
SHARES
121
VIEWS
Share on FacebookShare on Twitter

Contents

  1. Prerequisites
  2. Add the .NET product feed to the system
  3. Install the latest .NET SDK using YUM
  4. Create a .NET Core web app
  5. (Optional): Setup Supervisor to keep your .NET Core web app online
  6. (Optional): Install Nginx as a reverse proxy
  7. Setup firewall rules
  8. Want to contribute?


.NET Core is a redesigned open source cross-platform development framework maintained by Microsoft and the ever-growing .NET community. With the help of .NET Core, developers can easily build modern high-performance applications on all kinds of platforms.

In this article, I will show you how to install .NET Core on a CentOS 7 server instance and then deploy a full functional .NET Core web application.

Prerequisites

  • A fresh Vultr CentOS 7 x64 server instance. Say its IP address is 203.0.113.1.
  • A sudo user.
  • The server instance has been updated to the latest stable status using the EPEL YUM repo.

Add the .NET product feed to the system

As a cross-platform development framework, .NET Core provides pre-compiled binaries for various operating systems. On CentOS 7, you can setup an officially signed .NET YUM repo by running the following commands as a sudo user:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]/nname=packages-microsoft-com-prod /nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod/nenabled=1/ngpgcheck=1/ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

Install the latest .NET SDK using YUM

Having the .NET YUM repo in place, install the latest .NET SDK, including .NET Core and other dependencies, on your machine:

sudo yum update -y
sudo yum install libunwind libicu -y
sudo yum install dotnet-sdk-2.1.4 -y

In order to confirm the result, you can create and run a “Hello World” demo .NET Core app:

cd
dotnet new console -o helloworldApp
cd helloworldApp
dotnet run

The dotnet new console -o helloworldApp command will create a directory named helloworldApp in your home directory and then use the console template to generate app files in the newly created directory.

Upon executing the dotnet run command, you will see the Hello World! message in the console.

Create a .NET Core web app

Now, create and run a .NET Core application of type razor. Just remember that “Razor Pages” is a new application template of .NET Core MVC that is designed for page-oriented scenarios:

cd
dotnet new razor -o myfirstwebapp
cd myfirstwebapp
dotnet run

By executing the dotnet run command above, you will start a .NET Core web app listening on: http://localhost:5000.

If you want to confirm that the web app is up and running, although it’s on a server instance with no GUI, you can still open a new terminal console and input curl http://localhost:5000 to view the source code of the web app’s home page.

Afterwards, you can press CTRL + C to shut down the .NET Core web app.

To materialize your web app, you need to edit files within the app directory. You can learn more details in the official .NET document page.

Having all of the development tasks done, you can use the following commands to publish your web app:

cd ~/myfirstwebapp
dotnet publish

You can find the published web app in the ~/myfirstwebapp/bin/Debug/netcoreapp2.0 directory.

(Optional): Setup Supervisor to keep your .NET Core web app online

Process crashes happen. In order to keep your web app online, it’s a good idea to have a process managment tool, such as Supervisor, to monitor and restart the crashed web app processes.

On CentOS 7, you can install Supervisor using YUM:

sudo yum install supervisor -y

Next, you need to setup a dedicated Supervisor config file for your web app:

cd /etc/supervisord.d
sudo vi myfirstwebapp.conf

Populate the file:

[program:myfirstwebapp]
command=dotnet myfirstwebapp.dll
directory=/home/sudouser/myfirstwebapp/bin/Debug/netcoreapp2.0/
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/myfirstwebapp.err.log
stdout_logfile=/var/log/myfirstwebapp.out.log

Save and quit:

:wq!

Next, you need to modify the default supervisord config file to include the config file we’ve created:

sudo cp /etc/supervisord.conf /etc/supervisord.conf.bak
sudo vi /etc/supervisord.conf

Find the last line:

files = supervisord.d/*.ini

Replace it:

files = supervisord.d/*.conf

Save and quit:

:wq!

Start Supervisor and set it to automatically start at system startup:

sudo systemctl start supervisord.service
sudo systemctl enable supervisord.service

Load the new Supervisor settings:

sudo supervisorctl reread
sudo supervisorctl update

Now, you can use the following command to show the app’s status:

sudo supervisorctl status

The output will look like the following:

myfirstwebapp                    RUNNING   pid 3925, uptime 0:08:45

Next, you can try to kill the app’s process by specifying the pid 3925:

sudo kill -s 9 3925

Wait for a while, and then check the status again:

sudo supervisorctl status

This time, the output will indicate that the app did break down and automatically started:

myfirstwebapp                    RUNNING   pid 3925, uptime 0:00:06

(Optional): Install Nginx as a reverse proxy

In order to facilitate visitors’ access, you can install Nginx as a reverse proxy to pass web traffic to port 5000.

Install Nginx using YUM:

sudo yum install nginx -y

Edit the default Nginx config file as follows:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo vi /etc/nginx/nginx.conf

Find the following segment within the http {} segment:

location / {
}

Insert six lines of reverse proxy settings between the braces as shown below:

location / {
proxy_pass http://127.0.0.1:5000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

Save and quit:

:wq!

Start the Nginx service and then set it to start at system startup:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Setup firewall rules

Before visitors can access the .NET Core web app on ports 80 and 443, you need to modify firewall rules as shown below:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

This completes the application setup. You’re now ready to browse your .NET Core web app at http://203.0.113.1.

Want to contribute?

You could earn up to $300 by adding new articles

Submit your article
Suggest an update
Request an article
Previous Post

Sticky Session With Docker Swarm (CE) on CentOS 7

Next Post

How to Setup an Apache Subversion (SVN) Server on CentOS 7

Next Post

How to Setup an Apache Subversion (SVN) Server on CentOS 7

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

No Result
View All Result

Recent Post

Install Imagemagick on CentOS
CentOS

Install Imagemagick on CentOS

by How VPS
June 28, 2023
0

This is how I installed Imagemagick on a vanilla CentOS server Start off by installing the prerequisites yum install php-pear...

Read more
how to Check phpinfo

How to Check phpinfo of Hosting or VPS?

June 28, 2023
Failed to download metadata for repo 'appstream' on Centos 8

How to fix error: Failed to download metadata for repo ‘appstream’ on Centos 8

February 25, 2022
How to Fix MySQL Error "Plugin 'InnoDB' registration as a STORAGE ENGINE failed"?

How to Fix MySQL Error “Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed”?

November 17, 2020
How to optimize Mysql or MariaDB

How to optimize Mysql or MariaDB

November 3, 2020

Recent News

  • Install Imagemagick on CentOS
  • How to Check phpinfo of Hosting or VPS?
  • How to fix error: Failed to download metadata for repo ‘appstream’ on Centos 8

Category

  • Arch
  • Authentication
  • Backups
  • BSD
  • Centmin Mod
  • CentOS
  • Control Panels
  • CoreOS
  • CWP
  • Debian
  • Directadmin
  • Encryption
  • Fedora
  • Firewalls
  • Hocvps Script
  • Hosting providers
  • Kloxo-MR
  • Linux
  • Mitigations
  • Operating System
  • Plesk
  • Reviews
  • Securing VPS/Servers
  • Security Patches
  • SSL Certificates
  • Uncategorized
  • Upgrading
  • VPS/Servers management guides
  • Vulnerability Detection
  • Web servers software
  • Webhosting Control Panel
  • About
  • Advertise
  • Careers
  • Contact

© 2025 JNews - Premium WordPress news & magazine theme by Jegtheme.

No Result
View All Result
  • Home
  • Management guides
    • Web servers software
      • Directadmin
      • Hocvps Script
      • Centmin Mod
      • CWP
      • Kloxo-MR
      • Plesk
    • Control Panels
    • Securing VPS/Servers
      • SSL Certificates
      • Upgrading
      • Authentication
  • Operating System
    • CentOS
    • Fedora
    • Debian
    • Linux
    • Arch
    • BSD
    • CoreOS
  • Reviews
  • Coupon
    • Domain Coupon
    • Hosting Coupon

© 2025 JNews - Premium WordPress news & magazine theme by Jegtheme.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
Thabet