Развернул образец веб-API dot net core в экземпляре EC2 в папке /var/www/hello-app, используя пользователя «ec2-user» в FileZilla.
Папка содержит необходимые dll и другие файлы dotnet.
Установил веб-сервер apache на экземпляр ec2 и запустил веб-сервер.
Запустите службу dotnet из командной строки, чтобы убедиться, что она работает, используя приведенную ниже команду.
компакт-диск /usr/lib64/точка
точка сети /var/www/helloapp/WebApi4.dll
- Я создал службу systemd для веб-API Dot net следующим образом.
sudo vim /etc/systemd/system/kestrel-helloapp.service
[Ед. изм]
Description=Пример приложения .NET Web API
[Оказание услуг]
Рабочий каталог=/var/www/helloapp
ExecStart=/usr/lib64/dotnet/var/www/helloapp/WebApi4.dll
Перезапустить = всегда
# Перезапустите службу через 10 секунд, если произойдет сбой службы dotnet:
Рестартсек=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-пример
Пользователь = апач
Среда=ASPNETCORE_ENVIRONMENT=Производство
Среда=ASPNETCORE_URLS=http://localhost:5000
[Установить]
WantedBy=многопользовательская.цель
Когда я запускаю следующие команды
sudo systemctl включить kestrel-helloapp.service
sudo systemctl запустить kestrel-helloapp.service
статус sudo systemctl kestrel-helloapp.service
Я получаю следующую ошибку (203/EXEC) для третьей команды
[ec2-user@ip-172-31-81-1 dotnet]$ sudo systemctl status kestrel-helloapp.service
â kestrel-helloapp.service — пример приложения .NET Web API, работающего на CentOS 7.
Загружено: загружено (/etc/systemd/system/kestrel-helloapp.service; включено; предустановка поставщика: отключена)
Активно: активация (автоматический перезапуск) (Результат: код выхода) со вторника 11 января 2022 г. 15:40:30 UTC; 6 с назад
Процесс: 71626 ExecStart=/usr/lib64/dotnet /var/www/helloapp/WebApi4.dll (code=exited, status=203/EXEC)
Основной PID: 71626 (код=выход, статус=203/EXEC)
11 января 15:40:30 ip-172-31-81-1.ec2.internal systemd[1]: kestrel-helloapp.service: основной процесс завершен, код = завершен, статус = 203/EXEC
11 января 15:40:30 ip-172-31-81-1.ec2.internal systemd[1]: kestrel-helloapp.service: Ошибка с результатом «код выхода».
- Открыл порт 5000 с помощью
sudo firewall-cmd --add-port=5000/tcp --постоянный
- Сделал apache владельцем папки /var/www
sudo chown -R apache:apache /var/www
sudo chmod -R 550 /var/www
-
Я посмотрел ошибку и возможные причины, связанные с ошибкой, нашел следующее.
Проверьте все, что я могу придумать, все то же самое
Сообщение об ошибке (code=exited, status=203/EXEC) часто появляется, когда не удается выполнить сам скрипт или его интерпретатор.
У этого могут быть следующие причины:
неправильный путь к скрипту (например, /home/py/ReadPressure2AndPostToMqtt.py)
скрипт не исполняемый
нет шебанга (первая строка)
неправильный путь в shebang (например, /bin/python3)
внутренним файлам в вашем скрипте могут отсутствовать права доступа.
SELinux может препятствовать выполнению параметра ExecStart; проверьте /var/log/audit/audit.log на наличие сообщений вида: type=AVC msg=audit([...]): avc: deny { execute } или в выводе ausearch -ts недавние -m avc - я.
У вас неправильный параметр WorkingDirectory