При запуске приложение лезет в var/www/.dotnet хотя такой папки не существует
Пытаюсь запустить сервис с приложением C#
[Unit]
Description=TgBot1
[Service]
WorkingDirectory=/var/www/TgBot1
ExecStart=/usr/bin/dotnet /var/www/TgBot1/TgBotGetRequest
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=www-data
[Install]
WantedBy=multi-user.target
Получаю ошибку
Jan 09 20:34:06 racknerd-046249 dotnet-example[4851]: System.UnauthorizedAccessException: Access to the path '/var/www/.dotnet' is denied.
Jan 09 20:34:06 racknerd-046249 dotnet-example[4851]: ---> System.IO.IOException: Permission denied
Jan 09 20:34:06 racknerd-046249 dotnet-example[4851]: --- End of inner exception stack trace ---
Jan 09 20:34:06 racknerd-046249 dotnet-example[4851]: at System.IO.FileSystem.CreateDirectory(String fullPath, UnixFileMode unixCreateMode)
Jan 09 20:34:06 racknerd-046249 dotnet-example[4851]: at System.IO.Directory.CreateDirectory(String path)
Jan 09 20:34:06 racknerd-046249 dotnet-example[4851]: at Microsoft.Extensions.EnvironmentAbstractions.DirectoryWrapper.CreateDirectory(String path)
Jan 09 20:34:06 racknerd-046249 dotnet-example[4851]: at Microsoft.DotNet.Configurer.FileSystemExtensions.<>c__DisplayClass0_0.<CreateIfNotExists>b__0()
Jan 09 20:34:06 racknerd-046249 dotnet-example[4851]: at Microsoft.DotNet.Cli.Utils.FileAccessRetrier.RetryOnIOException(Action action)
Jan 09 20:34:06 racknerd-046249 dotnet-example[4851]: at Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.Configure()
Jan 09 20:34:06 racknerd-046249 dotnet-example[4851]: at Microsoft.DotNet.Cli.Program.ConfigureDotNetForFirstTimeUse(IFirstTimeUseNoticeSentinel firstTimeUseNoticeSentinel, IAspNetCertificateSentinel aspNetCertificateSentinel, IFileS>
Приложение не запускается сразу выдает что ошибка где то /var/www/.dotnet , у меня нет такой папки.
Предполагаю что я как то не так запускаю сам файл TgBotGetRequest
В чем проблема?
Ответы (1 шт):
Автор решения: Uranus
→ Ссылка
Скорее всего проблема в том, что в настройках окружения вашего сервиса не задана переменная DOTNET_CLI_HOME
. Поэтому .NET пытается создать необходимые файлы конфигурации в директории HOME
, а у приложение права на запись только в директорию TgBot1.
Попробуйте явно задать DOTNET_CLI_HOME
в описании сервиса:
Environment=DOTNET_CLI_HOME=/var/www/TgBot1