アプリケーションプールを停止しても、アプリケーションのファイルが解放されない現象を紹介します。
アプリケーションプールを停止しても、アプリケーションのファイルハンドルが解放されず、Webアプリケーションの更新やメンテナンスができません。
負荷の低いサーバーでは発生する頻度が低く、負荷の高いサーバーのほうが発生しやすいです。
[インターネット インフォメーション サービス (IIS) マネージャー]を起動します。アプリケーションのメンテナンスをするため、一時的にアプリケーションを停止したいです。
左側のツリービューで[アプリケーション プール]のノードをクリックして選択します。下図の画面が表示されます。
停止ししたいアプリケーションプールを中央のリストからクリックして選択し、右クリックします。ポップアップメニューが表示されますので [停止] の項目をクリックします。
または、右側の[操作]パネルの[停止]の項目をクリックしても停止できます。
表示上はアプリケーションプールが停止された状態になります。
Webアプリケーションのファイル操作をすると、以下のエラーが表示されます。
アプリケーションプールを停止しましたが、アプリケーションのファイルハンドルは解放されていないように見えます。
なお、アプリケーションプールを再開しようとすると、以下のエラーが発生します。
アプリケーションプールを停止してもアプリケーションに接続しているユーザーがいる場合、すぐには停止にならないと推測できます。
しばらく待つとアプリケーションのファイルハンドルが解放される場合があります。
Webサイト、IISサーバーの順に停止し、問題が解消されるか確認します。
インターネット インフォメーション サービス (IIS) マネージャーの左側のツリービューで対象のサイトのノードをクリックして選択します。
右クリックしてポップアップメニューを表示し、[Web サイトの管理]の[停止]の項目をクリックします。
または、右側の[操作]パネルの[停止]の項目をクリックします。
サイトが停止状態になりました。この状態でアプリケーションのファイルが解放されているか確認します。
改善されない場合は、サーバーを停止します。IISマネージャーの左側のツリービューでサーバーのノードをクリックして選択します。
右クリックしてポップアップメニューを表示し、[停止]の項目をクリックします。
または、右側の[操作]パネルの[停止]の項目をクリックしても停止できます。
IISサーバーが停止状態になりました。画面の見た目ではわかりにくいですが、[操作]パネルの[開始]の項目が有効になり、右クリック時のポップアップメニューでも
[開始]の項目が有効になっています。
この状態でファイルが解放されているか確認します。IISのサーバーを停止した場合はほとんどの場合でファイルの開放がされます。
問題が解決されていれば、必要なメンテナンスを実施し、IISサーバーを開始し、その後、サイトを開始、最後にアプリケーションプールを開始して
アプリケーションが実行される状態に戻します。
上記の対処法でも解消しない場合、または、IISサーバーやアプリケーションプールが開始できない状態になってしまった場合には、マシンを再起動します。