1. ホーム
  2. asp.net-core

[解決済み] IIS で ASP.NET Core サイトを実行できない - HTTP エラー 502.5

2022-02-05 14:21:59

質問

Windows 2012 R2マシンを使用しています。 その上に既存のASP.NET Coreサイトがあり、動作する公開ASP.NET Coreサイトが稼働していました。

しかし、変更を加えてから1ヶ月後の今日、再度サイトに公開したところ、サイトにアクセスできなくなり、ブラウザで以下のエラーが表示されるようになりました。

<ブロッククオート

HTTP エラー 502.5 - プロセスの失敗

詳しくはこちらをご覧ください。 http://go.microsoft.com/fwlink/?LinkID=808681

サーバーにログインして、配備したディレクトリのexeをクリックすると、コマンドプロンプトが開き、ポート5000にある私のサイトが表示されます。もし、このサイトに http://localhost:5000 ということは、問題はIISにあり、サイトそのものにあるのではありません。

サーバーにログインすると、WindowsのEventViewerで次のように表示されます。

アプリケーション 'MACHINE/WEBROOT/APPHOST/DEFAULT WEB SITE/MySite' with physical root 'D:\SitesMySite' はコマンドライン '"%LAUNCHER_PATH%" %LAUNCHER_ARGS%' でプロセスの開始に失敗しました。

ブラウザのエラーメッセージにあるリンクにアクセスすると、.net Core Hosting バンドルを再インストールすると書いてあったので、それを実行しました。しかし、ブラウザのエラーメッセージは同じです。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore requestTimeout="02:00:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
  </system.webServer>
</configuration>

アプリのログフォルダを見ると、このサイトにアクセスするたびに標準出力ファイルが作成されますが、毎回サイズは0KBで中身は空です。

以前は動作していたのに、コンパイルされたexeに直接アクセスするとアプリが動作するのに、なぜIISが突然動作しなくなったのですか?

解決方法を教えてください。

Web.configファイルに問題があるようです。

<aspNetCore requestTimeout="02:00:00" 
     processPath="%LAUNCHER_PATH%" 
     arguments="%LAUNCHER_ARGS%" 
     stdoutLogEnabled="true" 
     stdoutLogFile=".\logs\stdout" 
     forwardWindowsAuthToken="false" />

LAUNCHER_PATH%というパスはあなたのシステムには存在せず、有効ではありません。次のようなものでなければなりません。

<aspNetCore requestTimeout="02:00:00" 
     processPath=".\yourAppName.exe" 
     arguments="somePossibleArgument" 
     stdoutLogEnabled="true" 
     stdoutLogFile=".\logs\stdout" 
     forwardWindowsAuthToken="false" />

コマンドラインからアプリを起動した場合、web.config ファイルは完全に無視されることに注意してください。