gpt4 book ai didi

.net - 如何在 Nginx 服务器中将 ASP.NET Core Web API dll 文件作为服务运行?

转载 作者:行者123 更新时间:2023-12-04 18:28:59 26 4
gpt4 key购买 nike

我有一个 AWS EC2 上运行的实例Ubuntu 16.04 服务器。我正在运行 ASP.NET Core Web API 本例中的服务器。

我关注了这个link使用 Nginx 在 Linux 上托管 ASP.NET Core .我一直按照教程操作,直到 Monitoring the app部分。现在,我已经使用下面的命令运行了 web api dll 文件,它正在监听 http://localhost:5000

dotnet MyWebAPI.dll

我已经通过使用 连接 EC2 实例来运行上述命令腻子 .因为我已经设置了反向代理服务器,所以我可以使用 postman 很好地访问我的端点。

但是,当我关闭 PuTTY session 时,dll 文件不再运行。结果,我无法到达终点。

那么,我应该怎么做才能让 dll 文件作为服务在 localhost 上运行,以便在我关闭 PuTTY session 时它不会停止?

最佳答案

我可以在 Nginx 中将我的应用程序作为服务运行。服务器。现在,如果我关闭 PuTTY session ,服务仍在运行。我用过系统 创建一个服务文件来启动和监控底层 Web 应用程序。

systemd is an init system that provides many powerful features for starting, stopping, and managing processes.



起初,我为我的 Web 应用程序创建了一个服务文件

sudo nano /etc/systemd/system/my-web-api.service



然后,在里面 my-web-api.service文件,我包括以下配置:

[Unit] 
Description=My first .NET Core application on Ubuntu

[Service]
WorkingDirectory=/home/ubuntu/MyWebAPI
ExecStart=/usr/bin/dotnet /home/ubuntu/MyWebAPI/MyWebAPI.dll
Restart=always
RestartSec=10 # Restart service after 10 seconds if dotnet service crashes
SyslogIdentifier=offershare-web-app
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target

然后,我需要启用该服务并运行它。

sudo systemctl enable my-web-api.service
sudo systemctl start my-web-api.service
sudo systemctl status my-web-api.service

现在,如果配置正确,status 命令应该显示服务正在运行。现在,我的 Web 应用程序正在运行,kestrel 默认监听端口 5000 ,所以我的申请可以在 上使用http://localhost:5000 .

现在,如果我关闭 PuTTY session ,我的 web api 仍在运行。

关于.net - 如何在 Nginx 服务器中将 ASP.NET Core Web API dll 文件作为服务运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51477473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com