我使用NetCore 2.0开发了一个控制台应用程序,如果我执行:dotnet name.dll,这个应用程序在我的linux发行版上运行得很好,但是我找不到任何教程来解释如何在线运行这个控制台应用程序。
我正在寻找一种解决方案,允许我运行该软件24小时,因为我的应用程序需要将数据存储到mysql数据库中。
我看到的是不同的网站,提供一个ASP.NET便宜的主机,但我不知道我应该购买什么样的服务实现这样的东西,有人可以帮助我吗?
谢谢。
发布于 2018-05-17 22:05:04
要部署应用程序,您需要运行它并通过设置反向代理将HTTP流量重定向到Kestrel。
窗口与IIS
首先,通过将此配置添加到Program类(可能已经存在),确保您的应用程序正在使用Kestrel服务器运行:
Program.cs
public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }
    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
    }
}上面的配置将设置一个反向代理,为您自动运行Kestrel服务器。
有关更多信息,请查看用IIS在Windows上托管ASP.NET内核和ASP.NET核心网络主机。
Linux和Nginx或Apache
您需要手动配置反向代理,以便将流量重定向到正在运行的Kestrel服务器。如果希望自动启动服务器(),则需要配置服务:
如果您使用CentOS (或任何基于RedHat的发行版),下面是一些说明:
创建服务配置文件:
sudo nano /etc/systemd/system/kestrel-name.service使用以下内容编辑该文件:
[Unit]
Description=My awesome .NET Core Website
[Service]
WorkingDirectory=/var/aspnetcore/your_website
ExecStart=/usr/local/bin/dotnet /var/aspnetcore/your_website/name.dll
Restart=always
# Restart service after 10 seconds if dotnet service crashes
RestartSec=10
SyslogIdentifier=dotnet-example
# Change this to match the user running your Web server
User=apache
Environment=ASPNETCORE_ENVIRONMENT=Production 
[Install]
WantedBy=multi-user.target保存和关闭文件--运行以下命令来安装和启动服务:
systemctl enable kestrel-name.service
systemctl start kestrel-name.service如果您使用的是基于debian的发行版,如ubuntu:
在/etc/init/中为您的服务创建配置文件
sudo nano /etc/init/kestrel-name.conf将以下内容添加到配置文件中:
# My awesome .NET Core Website service configuration
start on filesystem
exec /usr/local/bin/dotnet /var/aspnetcore/your_website/name.dll保存文件并运行以下命令来安装和启动服务:
sudo ln -s /etc/init/kestrel-name.conf /etc/init.d/my_website_name
sudo service my_website_name start以下链接解释了如何配置反向代理:
https://stackoverflow.com/questions/50400488
复制相似问题