首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在网上运行dotnet应用程序?

如何在网上运行dotnet应用程序?
EN

Stack Overflow用户
提问于 2018-05-17 21:05:39
回答 1查看 776关注 0票数 0

我使用NetCore 2.0开发了一个控制台应用程序,如果我执行:dotnet name.dll,这个应用程序在我的linux发行版上运行得很好,但是我找不到任何教程来解释如何在线运行这个控制台应用程序。

我正在寻找一种解决方案,允许我运行该软件24小时,因为我的应用程序需要将数据存储到mysql数据库中。

我看到的是不同的网站,提供一个ASP.NET便宜的主机,但我不知道我应该购买什么样的服务实现这样的东西,有人可以帮助我吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-17 22:05:04

要部署应用程序,您需要运行它并通过设置反向代理将HTTP流量重定向到Kestrel。

窗口与IIS

首先,通过将此配置添加到Program类(可能已经存在),确保您的应用程序正在使用Kestrel服务器运行:

Program.cs

代码语言:javascript
运行
复制
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的发行版),下面是一些说明:

创建服务配置文件:

代码语言:javascript
运行
复制
sudo nano /etc/systemd/system/kestrel-name.service

使用以下内容编辑该文件:

代码语言:javascript
运行
复制
[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

保存和关闭文件--运行以下命令来安装和启动服务:

代码语言:javascript
运行
复制
systemctl enable kestrel-name.service
systemctl start kestrel-name.service

如果您使用的是基于debian的发行版,如ubuntu:

在/etc/init/中为您的服务创建配置文件

代码语言:javascript
运行
复制
sudo nano /etc/init/kestrel-name.conf

将以下内容添加到配置文件中:

代码语言:javascript
运行
复制
# My awesome .NET Core Website service configuration
start on filesystem
exec /usr/local/bin/dotnet /var/aspnetcore/your_website/name.dll

保存文件并运行以下命令来安装和启动服务:

代码语言:javascript
运行
复制
sudo ln -s /etc/init/kestrel-name.conf /etc/init.d/my_website_name

sudo service my_website_name start

以下链接解释了如何配置反向代理:

用Nginx在Linux上托管ASP.NET内核

用Apache在Linux上托管ASP.NET内核

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50400488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档