Пытался отладить уже 4 дня. У меня есть веб-приложение asp.net core 2, которое я пытаюсь запустить в Redhat linux 7.1 systemd. DLL работает нормально, когда я запускаю ее вручную, но не работает при попытке запустить через systemd.
Вывод из systemctl
web.service - WebServiceLayer Loaded: загружено (/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]: веб-служба модуля перешла в состояние ошибки.
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
}