Fan7 uygulamalarını IIS7'deki Uygulama Havuzlarından kaldırma


38

Uygulama havuzlarımdan birinde '/Site/login.aspx' sanal yoluna sahip bir uygulamam var. Kaldırmak istiyorum, ancak artık bilgisayarımda yok ve bu da AppFabric'i kurmama neden oluyor.

Uygulamayı IIS'de yeniden oluşturarak ve ardından Kaldır'ı tıklatarak bu hayali uygulamaları kaldırabileceğinizi anlıyorum. Bu uygulama havuzdan kurtulacak ancak bu durumda sanal yoldaki /login.aspx nedeniyle uygulamayı yeniden oluşturamıyorum

Bu hatalı girişi nasıl kaldırdığımı bilen var mı?

Teşekkürler

Yanıtlar:


44

Aynı sorunu yaşadığım için; artık bulunmayan uygulamalarla uygulama havuzları, biraz araştırma yaptım ve nihayet sorunu çözmeyi başardım.

İşte bazı adımlar:

  1. Bir metin düzenleyiciyle IIS 7 yapılandırma dosyanızı "applicationHost.config" bulup düzenleyin. " C: \ windows \ system32 \ inetsrv \ config " klasöründe saklanmalıdır. Klasör bir şekilde "korumalı" olduğundan, genellikle aşağıdaki gibi düzenlerim:
    1. Windows Gezgini'ni açın
    2. "C: \ windows \ system32 \ inetsrv \ config" konumuna gidin
    3. "ApplicationHost.config" dosyasını kopyalayın
    4. Düzenleyebileceğiniz bir klasöre yapıştırın, örneğin Masaüstünüz
    5. Choise editörünle aç ve düzenle
    6. Windows Gezgini ile "C: \ windows \ system32 \ inetsrv \ config" konumuna geri kopyalayın
  2. "ApplicationHost.config" dosyanızın bir yedeğini alın!
  3. Var olmayan uygulamalarınız için "applicationHost.config" içinde bir metin editörüyle arama yapın. Bir <application ...>XML düğümünün içinde bir yerde bulunmalıdırlar .
  4. <application ...>Tüm hayalet uygulamalarınızın düğümlerini silin .
  5. Dosyayı kaydedin ve tekrar "C: \ windows \ system32 \ inetsrv \ config" konumuna kopyalayın
  6. IIS yönetim konsolunu yenileyin. Uygulama havuzlarınız şimdi önceden sildiğiniz hayalet uygulamalar olmadan olmalıdır.
  7. Aslında şimdi boş uygulama havuzunu kaldırın.

Bu benim için çalıştı, eğer sizin için işe yaramazsa, lütfen buraya bir yorum gönderin. IIS forumunda bu yazı iyi bir yardım oldu .


6
Ayrıca bu yazıya rastladım. Yukarıdaki çözümü benim için çalıştığı gibi kullanmadım Av Zombileri - Artık iis web uygulamalarını kaldırma
Col

1
@ Col'un yukarıdaki yorumundaki linkteki Powershell yaklaşımı temiz bir çözüm ve harika sonuç veriyor.
Recep

4

Bu muhtemelen applicationHost.config dosyasını düzenlemekten daha güvenli ve basittir.

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
Bu uygulama havuzlarını kaldırır . (Hayalet) uygulamaları kaldırmak için, serverfault.com/questions/283467/…
bvgheluwe 7:17

1

Çok daha basit:

  1. Eski uygulama X'i görüntüleyin ve (eski) Y yolunu hatırlayın
  2. Explorer ile (eski) yolunu / klasörünü Y oluşturun
  3. IIS Yönetim Konsolunu Yenile
  4. Yeni oluşturulan klasörü Y ve atanmış X uygulamasını bulacaksınız.
  5. (Eski) uygulama X üzerinde sağ tıklayın ve "Kaldır" ı seçin
  6. Explorer ile Y yolunu kaldır
  7. IIS Yönetim Konsolu'nu tekrar yenileyin
  8. hurra

1

Alt uygulamalar otomatik olarak silinmez ve IIS Yöneticisi bunları ağaçta görüntüleyemez, bu yüzden sorun bu ...

Hızlı ve sağlam bir yol tüm uygulamaları almak için bir PowerShell betiğini kullanmak, fiziksel yolun hala var olup olmadığını test etmek ve değilse uygulamayı silmek:

# 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
}

Sadece küçük bir düzeltme: IIS Yöneticisi, 'Uygulama havuzları' veya 'Siteler' düğümünü seçerek ve bir appPool / sitesinde 'Uygulamaları Görüntüle' seçeneğini seçerek hayali uygulamaları görüntüleyebilir. Ancak, yalnızca 'Siteler' düğümünden silinmeye izin veriyor!
Ronald

Server 2012 R2'de "Add-PSSnapIn" i "Import-Module" olarak değiştirmem gerektiğine rağmen, bu benim için mükemmel çalıştı.
ldam

1

Bunu düzeltmenin kolay bir yolu var.

  1. Uygulama havuzundaki Phantom uygulamaları ile siteyi seçin.
  2. Sağ taraftaki "Eylem" menüsünde "Uygulamaları Görüntüle" yi seçin. Bu liste, sitedeki tüm fantomları göstermemelidir.
  3. Tek yapmanız gereken Uygulamayı seçmek ve sağ "İşlem" menüsünde "Kaldır" ı seçmek.

0

Neden MetaBase.xml dosyasını doğrudan düzenlemiyorsunuz? Tabii ki, ondan önce yedekle.

Veya bir "temp" havuzu oluşturun, diğer tüm uygulamaları oraya taşıyın, orijinalı havuzu kaldırın ve yeni havuzu yeniden adlandırın (gerekirse).


4
İlk sebep: IIS7 olduğundan, ApplicationHost.config dosyasını düzenlemek gerekir! Ama katılıyorum, neden sadece "önce bu URL’yi farklı bir Uygulama Havuzuna yazmıyorsunuz" anlamıyorum?
TristanK

2
Yardım için teşekkürler. Önce URL’yi geçici bir havuza taşıdım ve bu, AppFabric ile ilgili sorunu gidermektedir. Ancak, uygulama havuzunu kullanan uygulamaları olduğu sürece silemediğiniz için hala tehlikeli uygulamayı nasıl kaldırabileceğimi hala göremiyorum ve uygulamayı uygulama havuzundan silemiyorum
Col

0

ApplicationHost.config 'i elle değiştirmek istemediğim için yukarıda listelenen iki cevabın bir kombinasyonunu yaptım.

Adım 1 - Geçici bir uygulama havuzu oluşturun - "temp" diyelim.

Adım 2 - Tüm hayali uygulamaları bu geçici uygulama havuzuna taşıyın.

Adım 3 - Yukarıdaki cevaplardan birinden Powershell'i kullanın -

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]  

İşte bu kadar!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.