私のASP.NET CoreソリューションをLinuxで実行したいのですが、起動時に実行されます。
Microsoft docs からは、ApacheとNginxの2つの方法があります。
どちらのアプローチにもproxy passが含まれます。
Apache:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
....
Nginx:
server {
listen 80;
server_name example.com *.example.com;
location / {
proxy_pass http://localhost:5000;
...
ApacheまたはNginxはプロキシとしてのみ機能するので、正しいことはわかりますかdotnetアプリを手動で起動する必要があります?
何かがトリガーされる可能性があるドキュメントのビットを見ることができませんdotnet run
私のWebApiプロジェクトに対するコマンド。
明らかに、ApacheまたはNginxはdotnetアプリのトリガーを処理しません-私が何かを見逃していない限り。
OSの起動時にアプリを自動的に起動する方法はありますか?
このセクション ドキュメントでは、Asp.Net Coreアプリを自動的に起動するサービスファイルを作成する方法について説明しています。
サービス定義ファイルを作成します。
Sudo nano /etc/systemd/system/kestrel-hellomvc.service
以下は、アプリのサンプルサービスファイルです。
[Unit] Description=Example .NET Web API App running on Ubuntu [Service] WorkingDirectory=/var/aspnetcore/hellomvc ExecStart=/usr/bin/dotnet /var/aspnetcore/hellomvc/hellomvc.dll Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 SyslogIdentifier=dotnet-example User=www-data Environment=ASPNETCORE_ENVIRONMENT=Development [Install] WantedBy=multi-user.target
ファイルを保存してサービスを有効にします。
systemctl enable kestrel-hellomvc.service
サービスを開始し、実行されていることを確認します。
systemctl start kestrel-hellomvc.service systemctl status kestrel-hellomvc.service
WorkingDirectory
-アプリを含むフォルダーへのパスとExecStart
-アプリdllへのパスを設定する必要があります。デフォルトではこれで十分です。
今後、アプリはOSの起動時に自動的に起動し、クラッシュ後に再起動しようとします。