gpt4 book ai didi

linux - 启动时在 Linux 下运行 ASP.NET Core 应用程序

转载 作者:IT王子 更新时间:2023-10-29 01:04:41 25 4
gpt4 key购买 nike

我想在 linux 下运行我的 ASP.NET Core 解决方案,结果它在启动时运行。

来自微软docs ,有两种方式:ApacheNginx

这两种方法都涉及代理传递,例如

Apache :

<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
....

Nginx:

server {
listen 80;
server_name example.com *.example.com;
location / {
proxy_pass http://localhost:5000;
...

由于 Apache 或 Nginx 仅充当代理 - 我是否正确理解我必须手动启动 dotnet 应用

我在文档中看不到可以针对我的 WebApi 项目触发 dotnet run 命令的位。

显然,Apache 或 Nginx 不会处理触发的 dotnet 应用程序 - 除非我错过了什么。

有没有办法在操作系统启动时自动启动应用程序

最佳答案

This section在文档中描述了如何创建服务文件以自动启动您的 Asp.Net Core 应用程序。

Create the service definition file:

sudo nano /etc/systemd/system/kestrel-hellomvc.service

The following is an example service file for the app:

[Unit]
Description=Example .NET Web API App running on Ubuntu

[Service]
WorkingDirectory=/var/aspnetcore/hellomvc
ExecStart=/usr/bin/dotnet /var/aspnetcore/hellomvc/hellomvc.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
SyslogIdentifier=dotnet-example
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Development

[Install]
WantedBy=multi-user.target

Save the file and enable the service.

systemctl enable kestrel-hellomvc.service

Start the service and verify that it's running.

systemctl start kestrel-hellomvc.service
systemctl status kestrel-hellomvc.service

您需要设置 WorkingDirectory - 包含您的应用程序的文件夹路径和 ExecStart - 包含您的应用程序 dll 的路径。默认情况下这就足够了。

从现在开始,您的应用将在操作系统启动时自动启动,并将尝试在崩溃后重新启动

关于linux - 启动时在 Linux 下运行 ASP.NET Core 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51354868/

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