Am implementat un exemplu de aplicație web dot net core în instanța EC2 în folderul /var/www/hello-app folosind utilizatorul âec2-userâ din FileZilla
Dosarul conține dll-urile necesare și alte fișiere dotnet
Am instalat serverul web apache pe instanța ec2 și am pornit serverul web
Rulați serviciul dotnet din linia de comandă pentru a vă asigura că funcționează folosind comanda de mai jos
cd /usr/lib64/dotnet
dotnet /var/www/helloapp/WebApi4.dll
- Am creat serviciul systemd pentru API-ul web Dot net după cum urmează
sudo vim /etc/systemd/system/kestrel-helloapp.service
[Unitate]
Descriere=Exemplu de aplicație .NET Web API
[Serviciu]
WorkingDirectory=/var/www/helloapp
ExecStart=/usr/lib64/dotnet /var/www/helloapp/WebApi4.dll
Restart=intotdeauna
# Reporniți serviciul după 10 secunde dacă serviciul dotnet se blochează:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
Utilizator=apache
Mediu=ASPNETCORE_ENVIRONMENT=Producție
Mediu=ASPNETCORE_URLS=http://localhost:5000
[Instalare]
WantedBy=multi-user.target
Când rulez următoarele comenzi
sudo systemctl enable kestrel-helloapp.service
sudo systemctl start Kestrel-helloapp.service
stare sudo systemctl kestrel-helloapp.service
Primesc următoarea eroare (203/EXEC) pentru a treia comandă
[ec2-user@ip-172-31-81-1 dotnet]$ sudo systemctl status kestrel-helloapp.service
â kestrel-helloapp.service - Exemplu de aplicație .NET Web API care rulează pe CentOS 7
Încărcat: încărcat (/etc/systemd/system/kestrel-helloapp.service; activat; prestabilit furnizor: dezactivat)
Activ: se activează (repornire automată) (Rezultat: cod de ieșire) din Mar 2022-01-11 15:40:30 UTC; acum 6 secunde
Proces: 71626 ExecStart=/usr/lib64/dotnet /var/www/helloapp/WebApi4.dll (code=exited, status=203/EXEC)
PID principal: 71626 (cod=ieșit, stare=203/EXEC)
11 ianuarie 15:40:30 ip-172-31-81-1.ec2.internal systemd[1]: kestrel-helloapp.service: Procesul principal ieșit, cod=ieșit, stare=203/EXEC
11 ianuarie 15:40:30 ip-172-31-81-1.ec2.internal systemd[1]: kestrel-helloapp.service: a eșuat cu rezultatul „exit-code”.
- Deschis portul 5000 folosind
sudo firewall-cmd --add-port=5000/tcp --permanent
- A devenit proprietar apache al folderului /var/www
sudo chown -R apache:apache /var/www
sudo chmod -R 550 /var/www
-
Am căutat eroarea și posibilele motive legate de eroare, găsite în continuare.
Verifică tot ce îmi vine în minte, tot la fel
Mesajul de eroare (code=exited, status=203/EXEC) este adesea văzut atunci când scriptul în sine sau interpretul său nu poate fi executat.
Ar putea avea aceste motive:
cale greșită către script (de exemplu, /home/py/ReadPressure2AndPostToMqtt.py)
scriptul nu este executabil
nu shebang (prima linie)
cale greșită în shebang (de exemplu, /bin/python3)
este posibil ca fișierele interne din scriptul dvs. să nu aibă permisiuni de acces.
SELinux poate împiedica executarea parametrului ExecStart; verificați /var/log/audit/audit.log pentru mesaje de forma: type=AVC msg=audit([...]): avc: denied { execute } sau în ieșirea ausearch -ts recent -m avc - i.
Ai parametrul WorkingDirectory greșit