在Ubuntu上托管NetCore应用程序
嘿,伙计们,我在Ubuntu上托管.net内核时遇到了一些问题,我可以使用以下命令很好地托管它:在Ubuntu上托管NetCore应用程序,ubuntu,asp.net-core,.net-core,asp.net-core-2.0,Ubuntu,Asp.net Core,.net Core,Asp.net Core 2.0,嘿,伙计们,我在Ubuntu上托管.net内核时遇到了一些问题,我可以使用以下命令很好地托管它: dotnet /home/bourdain/website/FrutaMargemCore/bin/Release/netcoreapp2.0/FrutaMargemCore.dll 这可以很好地托管应用程序,我可以通过虚拟机的外部IP访问它,但它似乎将它锁定在某种会话状态,终端只是托管它,我需要终止进程以运行任何其他命令 info: Microsoft.AspNetCore.DataProtec
dotnet /home/bourdain/website/FrutaMargemCore/bin/Release/netcoreapp2.0/FrutaMargemCore.dll
这可以很好地托管应用程序,我可以通过虚拟机的外部IP访问它,但它似乎将它锁定在某种会话状态,终端只是托管它,我需要终止进程以运行任何其他命令
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
User profile is available. Using'/home/bourdain/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
Hosting environment: Production
Content root path: /home/bourdain/website/FrutaMargemCore/bin/Release/netcoreapp2.0
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
关闭SSH连接将终止进程,应用程序将不再托管
我试过使用
dotnet run /home/bourdain/website/FrutaMargemCore/bin/Release/netcoreapp2.0/FrutaMargemCore.dll
但它随机抛出一个异常
Using launch settings from /home/bourdain/website/FrutaMargemCore/Properties/launchSettings.json...
Unhandled Exception: System.FormatException: Value for switch '/home/bourdain/website/FrutaMargemCore/bin/Release/netcoreapp2.0/FrutaMargemCore.dll' is missing.
at Microsoft.Extensions.Configuration.CommandLine.CommandLineConfigurationProvider.Load()
at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildCommonServices(AggregateException& hostingStartupErrors)
at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()
at FrutaMargemCore.Program.BuildWebHost(String[] args) in /home/bourdain/website/FrutaMargemCore/Program.cs:line 21
at FrutaMargemCore.Program.Main(String[] args) in /home/bourdain/website/FrutaMargemCore/Program.cs:line 17
我如何在ubuntu服务器上托管netcore内核,而不让它在我关闭SSH连接时终止?您应该从创建如下服务文件开始:
sudo nano /etc/systemd/system/kestrel-yourApp.service
服务文件将包含以下内容:
[Unit]
Description=My ASPNET Core APP
[Service]
WorkingDirectory=/var/someFolder/yourApp
ExecStart=/usr/bin/dotnet /var/aspnetcore/yourApp/yourApp.dll
Restart=always
RestartSec=20
SyslogIdentifier=dotnet-example
User=yourUser
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
根据应用程序的上下文(如用户、路径等)调整参数。用户必须具有正确的权限
这将启动服务:
systemctl enable kestrel-yourApp.service
执行此操作只是为了检查其是否正在运行:
systemctl status kestrel-yourApp.service
很多关于如何做到这一点的文档,我建议你试试