2012-06-26 7 views
11

के लिए गलत निर्देशिका में देख रहा है वर्तमान मशीन पर एप्लिकेशन पूल प्राप्त करने का प्रयास करते समय मुझे एक अजीब समस्या है। ऐसा लगता है कि जब IISExpress स्थापित किया गया है, तो माइक्रोसॉफ्ट कोड पूर्ण आईआईएस के अलावा IISExpress की जांच करना चाहता है। IISExpress प्रति उपयोगकर्ता अलग-अलग अनुप्रयोगों का उपयोग करता है। मुझे यकीन नहीं है कि इस कॉल के लिए उन सभी को जांचने की आवश्यकता होगी, या केवल मौजूदा उपयोगकर्ता के लिए। भले ही, यह उस व्यक्ति को नहीं ढूंढ रहा है जिसे वह 'सी: \ विंडोज \ system32 \ config \ systemprofile \' निर्देशिका में ढूंढ रहा है। यह उपयोगकर्ता के लिए% userprofile% या 'C: \ Users \ Administrator \' पर जा रहा है कि इस कोड को निष्पादित करने वाला एप्लिकेशन पूल चल रहा है।माइक्रोसॉफ्ट.Web.Administration.ServerManager IISExpress applicationHost.config

क्या कोई शायद यह जानता है कि यह सिस्टमप्रोफाइल निर्देशिका कैसे आ रही है?

Exception:- 
System.IO.DirectoryNotFoundException: Filename: \\?\C:\Windows\system32\config\systemprofile\Documents\IISExpress\config\applicationHost.config 
Error: Cannot read configuration file 


    at Microsoft.Web.Administration.Interop.AppHostWritableAdminManager.GetAdminSection(String bstrSectionName, String bstrSectionPath) 
    at Microsoft.Web.Administration.Configuration.GetSectionInternal(ConfigurationSection section, String sectionPath, String locationPath) 
    at Microsoft.Web.Administration.ServerManager.get_ApplicationPoolsSection() 
    at Microsoft.Web.Administration.ServerManager.get_ApplicationPools() 
    at CustomCode.Classes.IIsApplicationPool.GetApplicationPool(String iisWebSitePath, String poolName) 

उत्तर

2

आप एप्लिकेशन पूल प्राप्त करने का प्रयास कैसे कर रहे हैं? क्या आप MWH (Microsoft.Web.Administration) API का उपयोग कर रहे हैं?

  1. माइक्रोसॉफ्ट.Web.Administration.dll (संस्करण 7.0.0.0) के साथ पूर्ण आईआईएस जहाजों।
  2. आईआईएस एक्सप्रेस माइक्रोसॉफ्ट.Web.Administration.dll (संस्करण 7.9.0.0) के एक अलग संस्करण के साथ जहाजों।

ऐसा लगता है कि पूर्ण आईआईएस आईआईएस एक्सप्रेस विशिष्ट असेंबली का उपयोग करने की कोशिश कर रहा है। मुझे यकीन नहीं है कि आप इस राज्य में कैसे समाप्त हुए, लेकिन आप आईआईएस एक्सप्रेस को अनइंस्टॉल कर सकते हैं और देख सकते हैं कि यह समस्या अभी भी होती है या नहीं।

संपादित करें:

क्यों आप अपने वेब अनुप्रयोग में Microsoft.Web.Administration (MWA) संस्करण 7.9.0.0 का उपयोग करना चाहते हैं? इसे आईआईएस एक्सप्रेस 7.5 के साथ प्रति उपयोगकर्ता applicationhost.config फ़ाइल के साथ काम करने के लिए भेजा जाता है और यह \ windows \ system32 \ inetsrv \ config \ appliationhost.config पर स्थित इनबॉक्स/पूर्ण आईआईएस कॉन्फ़िगरेशन फ़ाइल के साथ/काम नहीं करता है।

आपके मामले में, पूर्ण आईआईएस के तहत चल रहे वेब एप्लिकेशन सिस्टम पहचान के साथ चल रहा है और इसलिए MWA 7.9.0.0 'सी: \ विंडोज \ system32 \ config \ systemprofile' निर्देशिका से कॉन्फ़िगरेशन फ़ाइल लोड करने का प्रयास कर रहा है।

+0

माइक्रोसॉफ्ट वेब। पूर्ण आईआईएस के तहत एक वेब एप्लिकेशन से प्रशासन को बुलाया जा रहा है। यह वास्तव में 7.9.0.0 का उपयोग कर रहा है, जहां तक ​​मैं कह सकता हूं एक्सप्रेस एक्सप्रेस नहीं है, पुस्तकालय का एक नया संस्करण जो अतिरिक्त रूप से एक्सप्रेस का समर्थन करता है। अनइंस्टॉल करने वाला एक्सप्रेस समस्या को ठीक करता है और कोड 7.0.0.0 को कॉल करता है। मेरे लिए यह पुस्तकालय के नवीनतम संस्करण के साथ एक समस्या है, कम से कम मेरी स्थिति में जो असफल रहा है। –

+0

माइक्रोसॉफ्ट.Web.Administration (MWA) संस्करण 7.9.0.0 आईआईएस एक्सप्रेस 7.5 के साथ भेज दिया गया है और इसका उपयोग केवल आईआईएस एक्सप्रेस द्वारा किया जाता है। – vikomall

+1

आप अपने वेब एप्लिकेशन में माइक्रोसॉफ्ट.Web.Administration (MWA) संस्करण 7.9.0.0 का उपयोग क्यों करना चाहते हैं? इसे आईआईएस एक्सप्रेस 7.5 के साथ प्रति उपयोगकर्ता applicationhost.config फ़ाइल के साथ काम करने के लिए भेजा जाता है और यह \ windows \ system32 \ inetsrv \ config \ appliationhost.config पर स्थित इनबॉक्स/पूर्ण आईआईएस कॉन्फ़िगरेशन फ़ाइल के साथ/काम नहीं करता है। – vikomall

6

यदि एप्लिकेशन, जिसमें आप ऐप-पूल की जांच के लिए Microsoft.Web.Administration का उपयोग कर रहे हैं, IISExpress पर चल रहा है, यह हमेशा माइक्रोसॉफ्ट वेब पर प्रशासनिक संस्करण 7.9.0.0 पर गिर जाएगी। आईआईएस एक्सप्रेस में aspnet.config।

देखें C:\Program Files (x86)\IIS Express\config\templates\PersonalWebServer\aspnet.config यहाँ config में समस्या है:

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.Web.Administration" 
        publicKeyToken="31bf3856ad364e35" 
        culture="neutral" /> 
    <bindingRedirect oldVersion="7.0.0.0" 
        newVersion="7.9.0.0" /> 
    <codeBase version="7.9.0.0" 
      href="FILE://%FalconBin%/Microsoft.Web.Administration.dll" /> 
</dependentAssembly> 

सुनिश्चित करें कि आप या तो पूर्ण IIS में या दृश्य स्टूडियो विकास सर्वर पर आवेदन चला रहे हैं।

वैकल्पिक रूप से आप असेंबली रीडायरेक्ट को आजमा सकते हैं और हटा सकते हैं, लेकिन मैंने यह कोशिश नहीं की है, और इससे अन्य स्थानों में समस्याएं हो सकती हैं। हमें यह मानना ​​चाहिए कि आईआईएस एक्सप्रेस टीम ने किसी कारण (सुविधा के अलावा) के लिए रीडायरेक्ट किया है :-)

+0

मैं यह नहीं व्यक्त कर सकता कि इस टिप्पणी ने मुझे बहुत ही निराशाजनक मुद्दे को हल करने में मदद की है! व्यवहार को स्पष्ट करने और मुझे सही रास्ते पर रखने के लिए धन्यवाद। – spoida

+0

खुशी हुई इससे मदद मिली :-) –

5

मुझे पहले से ही पता है कि पुराना पुराना है लेकिन क्या आपने डीएल के एक अलग संस्करण को निर्दिष्ट करने का प्रयास किया है?

एक तस्वीर हजार शब्दों में लायक है:

enter image description here

+0

यह वास्तव में एक सही उत्तर है :) – Oleksii

+0

मेरे लिए काम नहीं कर रहा है (वीएस 2015, फ्रेमवर्क 4.6.1) – John

+0

वास्तव में यह बिल्कुल काम नहीं करेगा। "विशिष्ट संस्करण" संपत्ति केवल संकलन समय पर विचार की जाती है, रनटाइम पर नहीं। यहां एक व्यापक उत्तर के लिए देखें: https://stackoverflow.com/questions/24022134/how-exactly-does-the- विशिष्ट-version-property-of-an-assembly-reference-work-i – Vinicius

8

मैं अत्यधिक है कि आईआईएस के साथ भेज दिया जाता है (भले ही वह GAC में है) Microsoft.Web.Administration करने के लिए स्थानीय संदर्भ का उपयोग बंद करने की सलाह देते हैं। ऐसा इसलिए है क्योंकि इसमें एक बहुत ही विशिष्ट संस्करण संख्या है (यानी 7.0.0.0) और यह संस्करण विंडोज के भविष्य के संस्करण में बदल सकता है और यह चोट पहुंचाएगा।

इसके बजाय, nuget पैकेज चेकआउट करें: Microsoft.Web.Administration (https://www.nuget.org/packages/Microsoft.Web.Administration)। यह मूल रूप से इसे बनाता है ताकि आप अपनी आईआईएस निर्भरताओं की निजी तैनाती कर सकें।

+0

यह हल करने के लिए मुझे! धन्यवाद! – RichC

+0

यह भी सुनिश्चित करें कि सही संस्करण आपके App.config/web.config में है, जो मेरे लिए मामला नहीं था, – John

0

मुझे अपने विकास मशीन पर स्थानीय रूप से "टीमकॉन्फिग फ़ोल्डर" मैपिंग मिली, मेरे लिए इस समस्या को हल करने में मदद मिली।