IIS7의 응용 프로그램 풀에서 가상 응용 프로그램 제거


38

가상 경로가 '/Site/login.aspx'인 응용 프로그램 풀 중 하나에 응용 프로그램이 있습니다. 제거하고 싶지만 컴퓨터에 더 이상 존재하지 않아 AppFabric 설정에 문제가 있습니다.

IIS에서 응용 프로그램을 다시 만든 다음 제거를 누르면 이러한 팬텀 응용 프로그램을 제거 할 수 있습니다. 풀에서 응용 프로그램을 제거하지만이 경우 가상 경로의 /login.aspx로 인해 응용 프로그램을 다시 만들 수 없습니다.

이 잘못된 항목을 제거하는 방법에 대한 아이디어가 있습니까?

감사

답변:


44

같은 문제가 있었기 때문에; 더 이상 존재하지 않는 응용 프로그램이있는 응용 프로그램 풀을 조사한 결과 마침내 문제를 해결했습니다.

몇 가지 단계는 다음과 같습니다.

  1. 텍스트 편집기를 사용하여 IIS 7 구성 파일 "applicationHost.config"를 찾아 편집하십시오. " C : \ windows \ system32 \ inetsrv \ config "에 저장해야합니다 . 폴더는 "보호"되어 있기 때문에 보통 다음과 같이 편집합니다.
    1. Windows 탐색기를 엽니 다
    2. "C : \ windows \ system32 \ inetsrv \ config"로 이동하십시오.
    3. "applicationHost.config"파일을 복사하십시오.
    4. 편집 할 수있는 폴더 (예 : 바탕 화면)에 붙여 넣기
    5. choise의 편집기로 열고 편집하십시오.
    6. Windows 탐색기를 사용하여 "C : \ windows \ system32 \ inetsrv \ config"로 다시 복사하십시오.
  2. "applicationHost.config"파일을 백업하십시오!
  3. "applicationHost.config"에서 텍스트 편집기로 존재하지 않는 응용 프로그램을 검색하십시오. 이들은 <application ...>XML 노드 내부에 위치해야 합니다.
  4. <application ...>모든 팬텀 응용 프로그램 의 노드를 삭제하십시오 .
  5. 파일을 저장하고 "C : \ windows \ system32 \ inetsrv \ config"로 다시 복사하십시오.
  6. IIS 관리 콘솔을 새로 고칩니다. 이제 응용 프로그램 풀에 이전에 삭제 한 가상 응용 프로그램이 없어야합니다.
  7. 실제로 비어있는 응용 프로그램 풀을 제거하십시오.

그것은 당신을 위해 작동하지 않는 경우, 나를 위해 여기에 의견을 게시하시기 바랍니다. IIS 포럼에이 글이 도움이되었습니다 .


6
또한이 기사를 보았습니다. 위의 솔루션이 나를 위해 일한 것처럼 그것을 사용하지 않았습니다. 사냥 좀비-고아 iis 웹 응용 프로그램을 제거하는 방법
Col

1
위의 @Col의 의견에있는 링크의 Powershell 접근법은 깨끗한 솔루션이며 훌륭하게 작동합니다.
Recep

4

이것은 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]  

1
이것은 응용 프로그램 풀을 제거 합니다 . (팬텀) 응용 프로그램을 제거하려면 serverfault.com/questions/283467/…에
bvgheluwe

1

훨씬 더 간단합니다 :

  1. 오래된 응용 프로그램 X를보고 (오래된) 경로 Y를 기억하십시오
  2. 탐색기로 (오래된) 경로 / 폴더 Y를 만듭니다.
  3. IIS 관리 콘솔 새로 고침
  4. 방금 생성 한 폴더 Y와 할당 된 응용 프로그램 X를 찾을 수 있습니다
  5. (이전) 응용 프로그램 X를 마우스 오른쪽 버튼으로 클릭하고 "제거"를 선택하십시오.
  6. 탐색기로 경로 Y 제거
  7. IIS 관리 콘솔을 다시 새로 고칩니다.
  8. 만세

1

자식 응용 프로그램은 자동으로 삭제되지 않으며 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
}

약간만 수정하면 IIS 관리자는 '응용 프로그램 풀'또는 '사이트'노드를 선택하고 appPool / 사이트에서 '응용 프로그램보기'를 선택하여 가상 응용 프로그램을 표시 할 수 있습니다. '사이트'노드에서만 삭제할 수 있습니다!
Ronald

Server 2012 R2에서 "Add-PSSnapIn"을 "Import-Module"로 변경해야했지만 완벽하게 작동했습니다.
ldam

1

이 문제를 해결하는 쉬운 방법이 있습니다.

  1. 응용 프로그램 풀에서 Phantom 응용 프로그램이있는 사이트를 선택하십시오.
  2. 오른쪽 "작업"메뉴에서 "응용 프로그램보기"를 선택하십시오. 이 목록에는 Phantom 사이트에있는 모든 응용 프로그램이 표시되어야합니다.
  3. 응용 프로그램을 선택하고 오른쪽 "작업"메뉴에서 "제거"를 선택하기 만하면됩니다.

0

MetaBase.xml을 직접 편집하지 않는 이유는 무엇입니까? 물론 그 전에 백업하십시오.

또는 "임시"풀을 생성하고, 다른 모든 앱을 이동하고, orig 풀을 제거하고, 필요한 경우 새 풀의 이름을 바꿉니다.


4
첫 번째 이유 : IIS7이므로 ApplicationHost.config를 편집해야합니다! 그러나 왜 "다른 앱 풀에서 해당 URL을 먼저 플릭"하지 않는지 이해하지 못합니까?
TristanK

2
도와 주셔서 감사합니다. URL을 먼저 임시 풀로 옮겼으므로 AppFabric의 문제가 제거됩니다. 그러나, 나는 아직 그것을 사용하여 응용 프로그램을 가지고 당신이 한 응용 프로그램 풀을 삭제할 수 없습니다 나는이 사기 응용 프로그램을 제거하는 방법을 볼 수 없습니다, 나는 응용 프로그램 풀에서 응용 프로그램을 삭제할 수 없습니다

0

applicationHost.config를 수동으로 땜질하고 싶지 않기 때문에 위에 나열된 두 가지 답변을 조합하여 수행했습니다.

1 단계-임시 앱 풀 만들기- "temp"라고합시다.

2 단계-모든 팬텀 애플리케이션을이 임시 앱 풀로 이동하십시오.

3 단계-위 답변 중 하나에서 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]  

짜잔!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.