Уже 4 дня пытаюсь отлаживать.
У меня есть веб-приложение asp.net core 2, которое я пытаюсь запустить в Redhat Linux 7.1 systemd. DLL работает нормально, когда я запускаю его вручную, но не удается при попытке запустить через systemd.
Вывод из systemctl
web.service - WebServiceLayer
Загружен: загружен (/etc/systemd/user/web.service; включен; предустановка поставщика:> отключена)
Активен: активирован (автоматический перезапуск) (Результат: код выхода) с Sun 2019-04-28> 12:49:01 CDT; 2 с. Назад
Процесс: 13588 ExecStart = / microsoft / dotnetcore / dotnet /local/lfs1/ServiceLayer/WebServiceLayer/WebServiceLayer.dll (код = выход, статус = 203 / EXEC)
Основной PID: 13588 (код = выход, статус = 203 / EXEC)
28 апреля 12:49:01 mymachine.net systemd [1]: web.service: основной процесс завершен, код = завершен, статус = 203 / EXEC
28 апреля, 12:49:01 mymachine.net systemd [1]: объект web.service перешел в сбойное состояние.
28 апреля 12:49:01 mymachine.net systemd [1]: сбой web.service.
Вот основной сервисный файл
mymachine home/username $ cat /etc/systemd/user/web.service
[Unit]
Description=WebServiceLayer
After=syslog.target
[Service]
User=serviceUser
Group=serviceUser
PIDFile=/tmp/$i.pid
WorkingDirectory=%h
Environment="PATH=/microsoft/dotnetcore/"
ExecStart="/microsoft/dotnetcore/dotnet /local/lfs1/ServiceLayer/WebServiceLayer/WebServiceLayer.dll"
Restart=always
RestartSec=3
StartLimitBurst=10
StartLimitIntervalSec=0
KillSignal=SIGQUIT
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target
Для справки, при нормальном запуске dll я не получаю ошибок:
[serviceUser @ mymachine]: / microsoft / dotnetcore / dotnet /local/lfs1/ServiceLayer/WebServiceLayer/WebServiceLayer.dll
Хостинг среда: Производство
Корневой путь к содержимому: / home / serviceUser Теперь прослушивает: "http://0.0.0.0:7777" Приложение запущено. Нажмите Ctrl + C, чтобы завершить работу.
Я смотрел на Исправление сбоя службы systemd 203 / EXEC (такого файла или каталога нет) , но это не помогло моей проблеме.
Любая помощь будет принята с благодарностью.
Код из Program.cs в файле .dll:
public static void Main(string[] args)
{
// NLog: setup the logger first to catch all errors
var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
try
{
logger.Debug("init main");
CreateWebHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
//NLog: catch setup errors
logger.Error(ex, "Stopped program because of exception");
throw;
}
finally
{
// Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux)
NLog.LogManager.Shutdown();
}
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUrls(urls: "http://mymachine.net:7777")
.UseStartup<Startup>()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
})
.UseNLog(); // NLog: setup NLog for Dependency injection
}