Asp.net Core no Linux (com ISPConfig)
Asp.net Core + MySql no Linux, IHostedService, SSL e publicação no Apache usando ISPConfig - Parte 4
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; }
}