A.K*_*A.K 3 linux centos .net-core kestrel-http-server asp.net-core
我正在尝试使用 MS Enter中给出的步骤在 Centos8 中安装 .NET Core(3.1) 应用程序。
根据 Microsoft 文档的服务文件/etc/systemd/system/kestrel-dotnetapp.service
[Unit]
Description= .NET Web API App for centos
[Service]
WorkingDirectory=/var/Application/netcoreapp31
ExecStart=/usr/local/dotnet /var/Application/netcoreapp31/helloapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnetapp
User=user
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
当我这样做时>sudo systemctl start kestrel-dotnetapp.service出现错误。
Jun 04 22:51:28 主机名 systemd[1827]: kestrel-dotnetapp.service: 无法执行命令:权限被拒绝
Jun 04 22:51:28 主机名 systemd[1827]: kestrel-dotnetapp.service: 在步骤 EXEC 生成时失败/usr/local/dotnet:权限被拒绝
-- 主题:进程 /usr/local/dotnet 无法执行
-- 定义者:systemd
找到下面的ls -la:
[user@hostname dotnet]$ ls -la
total 108
drwxr-xr-x. 4 root root 94 Apr 22 09:34 .
drwxr-xr-x. 14 root root 154 Jun 4 21:11 ..
-rwxr-xr-x. 1 root root 73048 Apr 22 09:32 dotnet
drwxr-xr-x. 3 root root 17 Apr 22 09:34 host
-rw-r--r--. 1 root root 1116 Apr 22 09:29 LICENSE.txt
drwxr-xr-x. 4 root root 67 Apr 22 09:34 shared
-rw-r--r--. 1 root root 31330 Apr 22 09:29 ThirdPartyNotices.txt
Run Code Online (Sandbox Code Playgroud)
我的应用程序可交付成果文件夹
[user@hostname Application]$ ls -la
total 8
drwxr-xr-x. 3 root root 26 Jun 4 20:53 .
drwxr-xr-x. 22 root root 4096 Jun 4 20:53 ..
drwxr-xr-x. 2 777 user 4096 Jun 4 20:45 netcoreapp31
Run Code Online (Sandbox Code Playgroud)
当我们将ExecStart的路径更改为时,发现服务正在启动ExecStart=/usr/local/dotnet/dotnet。不知道为什么微软博客说直到ExecStart=/usr/bin/dotnet就足够了!
PS:另外,如果 Linux 是 SE,服务文件不应该位于 /home 目录中
| 归档时间: |
|
| 查看次数: |
9806 次 |
| 最近记录: |