hostファイルが原因でIISのアプリケーションプールが停止する
これまで検証用のPCでIISが動作しないという現象にしばし出くわしていたが、その原因が判明した。通常利用ではあまり該当しないと思うが、検索しても出てこないので公開しておく。
現象
IISの起動後にWebアクセスすると「503 Service Unavailable」が返ってくる。IISマネージャで見てみるとアプリケーションプールが停止している。またWindowsイベントログには次のような警告が残されている。
イベントID: 5139
ソース: WAS
アプリケーション プール 'ASP.NET v4.0' に使われているワーカー プロセス '3336' のプロトコル 'http' に対するリスナー チャネルはリスナー チャネル エラーを報告しました。データ フィールドにはエラー番号が含まれています。
このデータフィールドには 80072AFC ( FC 2A 07 80 )が含まれている。
AppPoolの停止自体はこのエラーが5回連続で発生したためラピッドフェール保護により実行される(直後のエラーログ)。
原因
ネットで検索すると、コンピュータ名に空白を含む場合や実行ユーザの権限の問題などが出てくる。しかし今回の原因はhostファイルだった。
注釈:hostファイル
「C:\Windows\System32\drivers\etc\host」のテキストファイル。ホスト名-IPアドレスの対応を手動で設定する。DNSがないローカル接続の業務システムなんかではたまに利用されている。
このhostファイルに、自身のコンピュータ名に対して実際には無いIPアドレスが設定されていた。この設定を削除したら正常に稼働するようになった。
おそらくコンピュータ名から正引きしたIPアドレスに対してバインドしようとして、ソケットエラーが発生してたのだと推測される。
今回は検証用に流用したPCだったので、過去の設定が残っていてこのような現象が発生した。
以上。
コメント
コメントを投稿