{"id":5130,"date":"2025-11-14T11:54:08","date_gmt":"2025-11-14T11:54:08","guid":{"rendered":"https:\/\/www.hostinger.com\/br\/support\/?p=5130"},"modified":"2025-11-14T11:54:08","modified_gmt":"2025-11-14T11:54:08","slug":"como-iniciar-um-aplicativo-asp-net-na-hostinger","status":"publish","type":"post","link":"https:\/\/www.hostinger.com\/br\/support\/como-iniciar-um-aplicativo-asp-net-na-hostinger\/","title":{"rendered":"Como iniciar um aplicativo ASP.NET na Hostinger"},"content":{"rendered":"<p>O <a href=\"https:\/\/dotnet.microsoft.com\/en-us\/apps\/aspnet\" target=\"_blank\" rel=\"noopener\">ASP.NET<\/a> &eacute; um framework popular de desenvolvimento web criado pela <strong>Microsoft<\/strong>. Ele permite que os desenvolvedores criem aplica&ccedil;&otilde;es web, sites e servi&ccedil;os din&acirc;micos e robustos, utilizando diversas linguagens de programa&ccedil;&atilde;o, como <strong>C#<\/strong> e <strong>Visual Basic .NET<\/strong>.<\/p><p>Gra&ccedil;as aos seus recursos poderosos e &agrave; integra&ccedil;&atilde;o eficiente com outras tecnologias da Microsoft, o <strong>ASP.NET simplifica o processo de cria&ccedil;&atilde;o e implanta&ccedil;&atilde;o de aplica&ccedil;&otilde;es web<\/strong>.<\/p><p>A vers&atilde;o do ASP.NET suportada no Ubuntu &eacute; o ASP.NET <strong>Core<\/strong>. Caso voc&ecirc; utilize ASP.NET MVC com o <strong>.NET Framework<\/strong> ou <strong>Web API<\/strong>, pode ser necess&aacute;rio <a href=\"https:\/\/learn.microsoft.com\/en-us\/aspnet\/core\/migration\/mvc?view=aspnetcore-7.0\" target=\"_blank\" rel=\"noopener\">converter seu projeto para o ASP.NET Core MVC<\/a> antes de poder implant&aacute;-lo em nosso VPS Linux.<\/p><p>Para rodar sua aplica&ccedil;&atilde;o ASP.NET na Hostinger, &eacute; necess&aacute;rio ter um <strong>VPS<\/strong> com <a href=\"https:\/\/www.hostinger.com\/br\/support\/1583571-quais-sao-os-sistemas-operacionais-disponiveis-para-vps-no-hostinger\/\">Ubuntu 22.04 64bit e o template ASP.NET<\/a> j&aacute; instalado.<\/p><div class=\"intercom-interblocks-callout\" style=\"background-color: #e3e7fa80;border-color: #334bfa33\">\n<p class=\"no-margin\">Visite nossa p&aacute;gina de <a href=\"https:\/\/www.hostinger.com\/br\/vps\/asp-net-hospedagem\">Hospedagem ASP.NET<\/a> para saber mais sobre os planos VPS dispon&iacute;veis &#128640;<\/p>\n<\/div><h1 id=\"h_4767fec332\">Configura&ccedil;&atilde;o da aplica&ccedil;&atilde;o ASP.NET Core<\/h1><p class=\"no-margin\">Ao fazer <a href=\"https:\/\/www.hostinger.com\/br\/support\/5723772-como-se-conectar-ao-seu-vps-via-ssh-hostinger\/\">login no seu VPS<\/a> por SSH, voc&ecirc; pode checar as vers&otilde;es do .NET instaladas rodando este comando:<\/p><pre><code>dotnet --version<\/code><\/pre><p class=\"no-margin\">Para come&ccedil;ar, vamos criar uma aplica&ccedil;&atilde;o web simples a partir dos templates pr&eacute;-instalados e vamos cham&aacute;-la de <strong>NewApp<\/strong>:<\/p><pre><code>dotnet new webapp -o NewApp<\/code><\/pre><p class=\"no-margin\">Isso criar&aacute; uma nova pasta para sua aplica&ccedil;&atilde;o em: <strong>\/root\/NewApp\/<\/strong>. Agora, vamos alterar a porta padr&atilde;o da sua aplica&ccedil;&atilde;o para<strong> 5000<\/strong> no arquivo <strong>launchSettings.json<\/strong>:<\/p><pre><code>nano \/root\/NewApp\/Properties\/launchSettings.json<\/code><\/pre><p class=\"no-margin\">O resultado deve ser este:<\/p><pre><code>  \"profiles\": {\r\n    \"NewApp\": {\r\n      \"commandName\": \"Project\",\r\n      \"dotnetRunMessages\": true,\r\n      \"launchBrowser\": true,\r\n      \"applicationUrl\": \"http:\/\/localhost:5000\",\r\n      \"environmentVariables\": {\r\n        \"ASPNETCORE_ENVIRONMENT\": \"Development\"\r\n      }\r\n    }<\/code><\/pre><p>Al&eacute;m disso, precisamos remover o middleware <strong>UseHttpsRedirection()<\/strong>, pois usaremos o NGINX para gerenciar o redirecionamento HTTPS. Abra o arquivo <strong>Program.cs<\/strong> e certifique-se de que a linha <strong>app.UseHttpsRedirection()<\/strong> n&atilde;o esteja presente:<\/p><pre><code> nano \/root\/NewApp\/Program.cs<\/code><\/pre><p class=\"no-margin\">Tamb&eacute;m podemos adicionar o middleware <strong>app.UseForwardedHeaders()<\/strong>, j&aacute; que estamos usando o NGINX como um proxy reverso. O resultado deve ser este:<\/p><pre><code>var builder = WebApplication.CreateBuilder(args);\r\n\/\/ Add services to the container.\r\nbuilder.Services.AddRazorPages();\r\nvar app = builder.Build();\r\n\/\/ Configure the HTTP request pipeline.\r\nif (!app.Environment.IsDevelopment())\r\n{\r\n    app.UseExceptionHandler(\"\/Error\");\r\n    \/\/ The default HSTS value is 30 days. You may want to change this for production scenarios, see https:\/\/aka.ms\/aspnetcore-hsts.\r\n    app.UseHsts();\r\n}\r\napp.UseStaticFiles();\r\napp.UseForwardedHeaders();\r\napp.UseRouting();\r\napp.UseAuthorization();\r\napp.MapRazorPages();\r\napp.Run();<\/code><\/pre><h1 id=\"h_b8e441012d\">Publicar e executar a aplica&ccedil;&atilde;o<\/h1><p class=\"no-margin\">Para publicar a aplica&ccedil;&atilde;o usando a configura&ccedil;&atilde;o de <strong>Release<\/strong>, certifique-se de que voc&ecirc; est&aacute; no <strong>diret&oacute;rio do projeto<\/strong> e, em seguida, execute o comando a seguir:<\/p><pre><code>cd \/root\/NewApp\/\r\ndotnet publish --configuration Release <\/code><\/pre><p>O projeto foi publicado. Agora, precisamos criar um servi&ccedil;o para garantir que a aplica&ccedil;&atilde;o inicie e execute corretamente. Para come&ccedil;ar, vamos <strong>criar um arquivo de servi&ccedil;o<\/strong> para o nosso projeto dentro do diret&oacute;rio <strong>\/etc\/systemd\/system<\/strong>:<\/p><pre><code>cd \/etc\/systemd\/system\r\nsudo nano NewApp.service<\/code><\/pre><p class=\"no-margin\">No novo arquivo, insira a seguinte configura&ccedil;&atilde;o:<\/p><pre><code>[Unit]\r\nDescription=NewApp\r\n \r\n[Service]\r\nWorkingDirectory=\/root\/NewApp\/bin\/Release\/net6.0\/publish\/\r\nExecStart=\/usr\/bin\/dotnet \/root\/NewApp\/bin\/Release\/net6.0\/publish\/NewApp.dll\r\nRestart=always\r\n# Restart service after 10 seconds if the dotnet service crashes:\r\nRestartSec=10\r\nKillSignal=SIGINT\r\nSyslogIdentifier=dotnet-NewApp\r\nUser=root\r\nEnvironment=ASPNETCORE_ENVIRONMENT=Production\r\nEnvironment=DOTNET_PRINT_TELEMETRY_MESSAGE=false\r\n \r\n[Install]\r\nWantedBy=multi-user.target<\/code><\/pre><p class=\"no-margin\">Agora, vamos <strong>habilitar e iniciar o servi&ccedil;o<\/strong> usando os comandos abaixo:<\/p><pre><code>sudo systemctl enable NewApp.service\r\nsudo systemctl start NewApp.service<\/code><\/pre><h1 id=\"h_7deebf0a21\">Instalar e configurar o NGINX<\/h1><p class=\"no-margin\">Para come&ccedil;ar, vamos <strong>instalar o servidor NGINX<\/strong>. Ele &eacute; um software de servidor web de c&oacute;digo aberto muito popular, famoso por seu alto desempenho, escalabilidade e robustez. &Eacute; muito usado como servidor de proxy reverso, balanceador de carga e cache HTTP.<\/p><pre><code>sudo apt-get -y install nginx certbot python3-certbot-nginx<\/code><\/pre><p class=\"no-margin\">Ap&oacute;s a instala&ccedil;&atilde;o, vamos <strong>configurar o NGINX<\/strong>. Para isso, podemos <strong>editar o arquivo de configura&ccedil;&atilde;o<\/strong> usando o comando abaixo:<\/p><pre><code>sudo nano \/etc\/nginx\/sites-available\/default <\/code><\/pre><p class=\"no-margin\">Vamos fazer duas altera&ccedil;&otilde;es neste arquivo. Primeiro, defina o nome do seu dom&iacute;nio no par&acirc;metro <strong>server_name<\/strong>:<\/p><pre><code>server_name domain.tld; <\/code><\/pre><p class=\"no-margin\">Em seguida, defina a configura&ccedil;&atilde;o de <strong>location<\/strong> da seguinte forma:<\/p><pre><code>location \/ {\r\n    proxy_pass http:\/\/localhost:5000;\r\n    proxy_http_version 1.1;\r\n    proxy_set_header Upgrade $http_upgrade;\r\n    proxy_set_header Connection keep-alive;\r\n    proxy_set_header Host $host;\r\n    proxy_cache_bypass $http_upgrade;\r\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\n    proxy_set_header X-Forwarded-Proto $scheme;\r\n}<\/code><\/pre><h1 id=\"h_d34a73ab50\">Instalar um SSL e iniciar o Proxy NGINX<\/h1><p class=\"no-margin\">Ap&oacute;s a conclus&atilde;o da propaga&ccedil;&atilde;o DNS do seu dom&iacute;nio, o pr&oacute;ximo passo &eacute; <strong>gerar o certificado SSL<\/strong> para sua aplica&ccedil;&atilde;o ASP.NET. Execute o comando abaixo para gerar o certificado SSL automaticamente:<\/p><pre><code>sudo certbot --nginx -d domain.tld<\/code><\/pre><p class=\"no-margin\">Depois, <strong>reinicie o NGINX<\/strong> para aplicar a configura&ccedil;&atilde;o:<\/p><pre><code>nginx -t &amp;&amp; nginx -s reload<\/code><\/pre><p class=\"no-margin\">Em seguida, execute o comando <strong>crontab<\/strong> para renovar automaticamente o certificado SSL:<\/p><pre><code>crontab -e<\/code><\/pre><p class=\"no-margin\">Para finalizar, insira o comando a seguir para que o SSL seja <strong>renovado automaticamente todos os dias &agrave;s 12h (meio-dia):<\/strong><\/p><pre><code>0 12 * * * \/usr\/bin\/certbot renew --quiet<\/code><\/pre><p class=\"no-margin\">Feito! Sua aplica&ccedil;&atilde;o j&aacute; est&aacute; acess&iacute;vel no dom&iacute;nio que voc&ecirc; configurou neste tutorial &#127881;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como publicar uma aplica\u00e7\u00e3o ASP.NET na Hostinger<\/p>\n","protected":false},"author":433,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"include_on_kodee":true,"footnotes":""},"categories":[176],"tags":[],"class_list":["post-5130","post","type-post","status-publish","format-standard","hentry","category-gerenciamento-da-vps"],"hreflangs":[],"include_on_kodee":true,"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/support\/wp-json\/wp\/v2\/posts\/5130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/support\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/support\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/support\/wp-json\/wp\/v2\/users\/433"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/support\/wp-json\/wp\/v2\/comments?post=5130"}],"version-history":[{"count":1,"href":"https:\/\/www.hostinger.com\/br\/support\/wp-json\/wp\/v2\/posts\/5130\/revisions"}],"predecessor-version":[{"id":5131,"href":"https:\/\/www.hostinger.com\/br\/support\/wp-json\/wp\/v2\/posts\/5130\/revisions\/5131"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/support\/wp-json\/wp\/v2\/media?parent=5130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/support\/wp-json\/wp\/v2\/categories?post=5130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/support\/wp-json\/wp\/v2\/tags?post=5130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}