Đã triển khai api web lõi dot net mẫu cho phiên bản EC2 trong thư mục /var/www/hello-app bằng cách sử dụng người dùng âec2-userâ trong FileZilla
Thư mục chứa các dll cần thiết và các tệp dotnet khác
Đã cài đặt máy chủ web apache trên phiên bản ec2 và khởi động máy chủ web
Chạy dịch vụ dotnet từ dòng lệnh để đảm bảo nó hoạt động bằng lệnh bên dưới
cd /usr/lib64/dotnet
dotnet /var/www/helloapp/WebApi4.dll
- Tôi đã tạo dịch vụ systemd cho api web Dot net như sau
sudo vim /etc/systemd/system/kestrel-helloapp.service
[Đơn vị]
Mô tả=Ví dụ Ứng dụng API Web .NET
[Dịch vụ]
WorkingDirectory=/var/www/helloapp
ExecStart=/usr/lib64/dotnet /var/www/helloapp/WebApi4.dll
Khởi động lại = luôn luôn
# Khởi động lại dịch vụ sau 10 giây nếu dịch vụ dotnet gặp sự cố:
Khởi động lạiSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-ví dụ
Người dùng = apache
Môi trường=ASPNETCORE_ENVIRONMENT=Sản xuất
Môi trường=ASPNETCORE_URLS=http://localhost:5000
[Cài đặt]
WantedBy=multi-user.target
Khi tôi chạy các lệnh sau
Sudo systemctl enable kestrel-helloapp.service
Sudo systemctl start kestrel-helloapp.service
Sudo systemctl status kestrel-helloapp.service
Tôi gặp lỗi sau (203/EXEC) cho lệnh thứ ba
[ec2-user@ip-172-31-81-1 dotnet]$ sudo systemctl status kestrel-helloapp.service
â kestrel-helloapp.service - Ứng dụng API Web .NET mẫu chạy trên CentOS 7
Đã tải: đã tải (/etc/systemd/system/kestrel-helloapp.service; đã bật; giá trị đặt sẵn của nhà cung cấp: đã tắt)
Hoạt động: kích hoạt (tự động khởi động lại) (Kết quả: mã thoát) kể từ Thứ Ba 2022-01-11 15:40:30 UTC; 6 giây trước
Quá trình: 71626 ExecStart=/usr/lib64/dotnet /var/www/helloapp/WebApi4.dll (code=exited, status=203/EXEC)
PID chính: 71626 (mã=đã thoát, trạng thái=203/EXEC)
Ngày 11 tháng 1 15:40:30 ip-172-31-81-1.ec2.internal systemd[1]: kestrel-helloapp.service: Quá trình chính đã thoát, mã=đã thoát, trạng thái=203/EXEC
Ngày 11 tháng 1 15:40:30 ip-172-31-81-1.ec2.internal systemd[1]: kestrel-helloapp.service: Không thành công với kết quả là 'mã thoát'.
- Đã mở cổng 5000 bằng cách sử dụng
sudo tường lửa-cmd --add-port=5000/tcp -- Permanent
- Tạo chủ sở hữu apache của thư mục /var/www
sudo chown -R apache: apache /var/www
sudo chmod -R 550 /var/www
-
Tôi đã tra cứu lỗi và các lý do có thể liên quan đến lỗi, được tìm thấy sau đây.
Kiểm tra mọi thứ tôi có thể nghĩ ra, vẫn vậy
Thông báo lỗi (code=exited, status=203/EXEC) thường xuất hiện khi không thể thực thi chính tập lệnh hoặc trình thông dịch của tập lệnh đó.
Nó có thể có những lý do sau:
đường dẫn sai đến tập lệnh (ví dụ: /home/py/ReadPressure2AndPostToMqtt.py)
tập lệnh không thể thực thi được
không có shebang (dòng đầu tiên)
đường dẫn sai trong shebang (ví dụ:/bin/python3)
các tệp nội bộ trong tập lệnh của bạn có thể thiếu quyền truy cập.
SELinux có thể đang ngăn việc thực thi tham số ExecStart; kiểm tra /var/log/audit/audit.log để biết các thông báo có dạng: type=AVC msg=audit([...]): avc: bị từ chối { thực thi } hoặc trong đầu ra của ausearch -ts recent -m avc - tôi.
Bạn có tham số WorkingDirectory sai