回答:
同じ問題があったので。もう存在しなかったアプリケーションを含むアプリケーションプール、私はいくつかの研究を行い、最終的に問題を解決することができました。
以下にいくつかの手順を示します。
<application ...>
XMLノード内のどこかに配置する必要があります。<application ...>
すべてのファントムアプリケーションのノードを削除します。うまくいきましたが、うまくいかない場合は、ここにコメントを投稿してください。IISフォーラムへのこの投稿は非常に役立ちました。
これはおそらくapplicationHost.configを編集するよりも安全で簡単です。
Powershell
PS C:\Windows\system32> import-module WebAdministration
PS C:\Windows\system32> iis:
PS IIS:\> cd .\AppPools
PS IIS:\AppPools> ls
PS IIS:\AppPools> del [name of phantom AppPool]
子アプリケーションは自動的に削除されず、IISマネージャーはそれらをツリーに表示できないため、問題があります...
迅速かつ堅牢な方法は、PowerShellスクリプトを使用してすべてのアプリケーションを取得し、物理パスがまだ存在するかどうかをテストし、存在しない場合はアプリケーションを削除することです。
# This is for IIS 7, make sure the snap-in is installed first: https://www.iis.net/downloads/microsoft/powershell
Add-PSSnapin WebAdministration
# Get all IIS sites
Get-ChildItem IIS:\Sites | foreach {
$site = $_;
# Get all applications without existing physical path
$applications = Get-ChildItem $site.PsPath | Where-Object { $_.NodeType -eq "application" -and (Test-Path $_.PhysicalPath) -eq $False };
# List all phantom applications
$applications | FT
# Remove applications
$applications | Remove-WebApplication -Site $site.Name
}
MetaBase.xmlを直接編集してみませんか?もちろん、その前にバックアップしてください。
または、「temp」プールを作成し、他のすべてのアプリをそこに移動し、origプールを削除し、新しいプールの名前を変更します(必要な場合)。
applicationHost.configを手動で変更したくないので、上記の2つの回答を組み合わせました。
ステップ1-一時的なアプリプールを作成します-「temp」としましょう。
ステップ2-すべてのファントムアプリケーションをこの一時アプリケーションプールに移動します。
ステップ3-上記の回答の1つからPowershellを使用する-
Powershell
PS C:\Windows\system32> import-module WebAdministration
PS C:\Windows\system32> iis:
PS IIS:\> cd .\AppPools
PS IIS:\AppPools> ls
PS IIS:\AppPools> del [name of phantom AppPool]
出来上がり!