IIS7 में अनुप्रयोग पूल से प्रेत अनुप्रयोगों को हटाना


38

मेरे पास मेरे एक एप्लीकेशन पूल में एक एप्लीकेशन है जिसमें '/Site/login.aspx' का वर्चुअल पथ है। मैं इसे हटाना चाहता हूं लेकिन यह अब मेरे कंप्यूटर पर मौजूद नहीं है और यह मुझे AppFabric स्थापित करने में समस्या पैदा कर रहा है।

मैं समझता हूं कि आप IIS में एप्लिकेशन को फिर से बनाकर और फिर निकालें को हटाकर इन प्रेत अनुप्रयोगों को हटा सकते हैं। कि पूल से आवेदन से छुटकारा मिल जाएगा, लेकिन इस मामले में मैं आभासी पथ में /login.aspx के कारण एप्लिकेशन को फिर से नहीं बना सकता हूं

किसी भी विचार कैसे मैं इस गलत प्रविष्टि को हटा दें?

धन्यवाद

जवाबों:


44

चूंकि मेरे पास एक ही मुद्दा था; अनुप्रयोगों के साथ अनुप्रयोग पूल जो अब मौजूद नहीं थे, मैंने कुछ शोध किया और आखिरकार इस मुद्दे को हल करने में कामयाब रहा।

यहाँ कुछ कदम हैं:

  1. अपने IIS 7 कॉन्फ़िगरेशन फ़ाइल "ApplicationHost.config" को टेक्स्ट एडिटर के साथ खोजें और संपादित करें। इसे " C: \ windows \ system32 \ inetsrv \ config " में संग्रहीत किया जाना चाहिए क्योंकि फ़ोल्डर किसी तरह "संरक्षित" है, मैं आमतौर पर निम्नलिखित की तरह संपादित करता हूं:
    1. विंडोज एक्सप्लोरर खोलें
    2. "C: \ windows \ system32 \ inetsrv \ config" पर नेविगेट करें
    3. फ़ाइल की प्रतिलिपि बनाएँ "applicationHost.config"
    4. इसे एक फ़ोल्डर में पेस्ट करें जहां आप इसे संपादित कर सकते हैं, जैसे कि आपका डेस्कटॉप
    5. इसे choise के अपने संपादक के साथ खोलें और इसे संपादित करें
    6. इसे Windows Explorer के साथ "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 दृष्टिकोण एक स्वच्छ समाधान है और यह बहुत अच्छा काम करता है।
रेसेप

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. एक्सप्लोरर के साथ एक पुराना (पुराना) पथ / फ़ोल्डर वाई बनाएं
  3. IIS प्रबंधन कंसोल को ताज़ा करें
  4. आपको बस बनाया गया फ़ोल्डर Y और असाइन किया गया एप्लिकेशन X मिलेगा
  5. (पुराने) एप्लिकेशन X पर राइट क्लिक करें और "निकालें" चुनें
  6. एक्सप्लोरर के साथ पथ वाई निकालें
  7. IIS प्रबंधन कंसोल को फिर से ताज़ा करें
  8. हुर्रे

1

बाल एप्लिकेशन स्वचालित रूप से हटाए नहीं गए हैं और IIS प्रबंधक उन्हें पेड़ में प्रदर्शित नहीं कर सकता है, इसलिए यह आपकी समस्या है ...

एक त्वरित और मजबूत तरीका सभी अनुप्रयोगों को प्राप्त करने के लिए पॉवरशेल स्क्रिप्ट का उपयोग करना है, परीक्षण करें कि क्या भौतिक पथ अभी भी मौजूद है और यदि नहीं, तो समाधान को हटा दें:

# 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 प्रबंधक 'एप्लिकेशन पूल' या 'साइट' नोड का चयन करके और एक ऐपप्ल / साइट पर 'एप्लिकेशन देखें' का चयन करके प्रेत अनुप्रयोगों को प्रदर्शित कर सकता है। यह केवल 'साइट' नोड से हटाने की अनुमति देता है!
रोनाल्ड

यह मेरे लिए पूरी तरह से काम करता है, हालाँकि मुझे सर्वर 2012 R2 पर "Add-PSSnapIn" को "आयात-मॉड्यूल" में बदलना था।
लड्डू

1

इसे ठीक करने का एक आसान तरीका है।

  1. एप्लिकेशन पूल में प्रेत अनुप्रयोगों के साथ साइट का चयन करें।
  2. दाईं ओर "एक्शन" मेनू "एप्लिकेशन देखें" चुनें। इस सूची में उन सभी अनुप्रयोगों को दिखाना चाहिए जो साइट में हैं, प्रेत या नहीं।
  3. आपको केवल एप्लिकेशन का चयन करना है और सही "एक्शन" मेनू में "निकालें" चुनें।

0

MetaBase.xml को सीधे संपादित क्यों नहीं किया जाता है? बेशक, इससे पहले कि इसे वापस करें।

या एक "अस्थायी" पूल बनाएं, वहां अन्य सभी ऐप्स को स्थानांतरित करें, मूल पूल को हटा दें, और नया पूल (यदि आवश्यक हो) का नाम बदलें।


4
पहला कारण: क्योंकि यह IIS7 है, इसलिए ApplicationHost.config का संपादन आवश्यक है! लेकिन मैं मानता हूं, मुझे समझ में नहीं आ रहा है कि यह "URL को अलग ऐप पूल में पहले प्लैंक क्यों नहीं कर रहा है"?
ट्रिस्टन

2
सहायता के लिए धन्यवाद। मैंने पहले URL को एक अस्थायी पूल में स्थानांतरित कर दिया था और यह AppFabric के साथ समस्या को दूर करता है। हालाँकि, मैं अभी भी नहीं देख पा रहा हूं कि मैं डोडी एप्लिकेशन को कैसे हटा सकता हूं क्योंकि आप किसी ऐप पूल को तब तक नहीं हटा सकते जब तक कि इसमें एप्लिकेशन का उपयोग न हो, और मैं एप्लिकेशन पूल से एप्लिकेशन को नहीं हटा सकता
कर्नल

0

मैंने ऊपर सूचीबद्ध दो उत्तरों का संयोजन किया, क्योंकि मैं मैन्युअल रूप से ApplicationHost.config को छेड़ना नहीं चाहता था।

चरण 1 - एक अस्थायी ऐप पूल बनाएं - चलो "टेम्प" कहें।

चरण 2 - इस एप्लिकेशन के पूल में सभी प्रेत अनुप्रयोगों को स्थानांतरित करें।

चरण 3 - उपरोक्त उत्तरों में से किसी एक से पॉवरशेल का उपयोग करें -

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]  

देखा!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.