Asp.net Core no Linux (com ISPConfig)

Asp.net Core + MySql no Linux, IHostedService, SSL e publicação no Apache usando ISPConfig - Parte 5

Nessa sequencia de vídeos você irá aprender a criar uma aplicação simples, usando ASP.NET Core MVC, que faz uso de um serviço que roda em background, e ainda a publicar essa aplicação em um Linux Ubuntu rodando Apache, com a ajuda do ISPConfig (sua instalação é explicada em um outro vídeo do canal). Muito conceitos importantes sobre o ASP.net e a linguagem C# são comentados.

Versão do linux:

cat /etc/os-release
lsb_release -a

Opções do ISPConfig:

ProxyPreserveHost On
ProxyPass / [http://127.0.0.1:5000/](http://127.0.0.1:5000/)
ProxyPassReverse / [http://127.0.0.1:5000/](http://127.0.0.1:5000/)

Comando dotnet com Identity:

dotnet new mvc --auth Individual -o CheckService

Adicionar pacakage MySql:

dotnet add package Pomelo.EntityFrameworkCore.MySql

String de conexão MySql:

server=checksrv.mobilesoluctions.tk;port=3306;database=c1checkdb;user=*;password=*;

Códigos do proxy:

app.UseForwardedHeaders(new ForwardedHeadersOptions
{
  ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

Código do program.cs:

webBuilder.UseUrls("[http://*:5020/](http://*:5020/)");

Comando de publicação:

dotnet publish -c Release -r linux-x64

Arquivo de serviço:

[Unit]
Description=Aplicacao de Teste para a Aula do Youtube
[Service]
WorkingDirectory=/var/www/checksrv.mobilesoluctions.tk/web
ExecStart=/usr/bin/dotnet /var/www/checksrv.mobilesoluctions.tk/web/CheckService.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
User=www-data
SyslogIdentifier=check-srv
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target

Comandos de serviço linux:

sudo systemctl enable check.service
sudo systemctl start check.service
sudo systemctl status check.service

Comando de log:

journalctl -u check.service

Class criada:

public class GoogleResult
{
  public int Id { get; set; }
  public DateTime DateTime { get; set; }
  public string Result { get; set; }
  public string Error { get; set; }
}

Outros assuntos relacionados