asp.net-mvc - HTTP त्रुटि 500.1 9 और त्रुटि कोड:0x80070021





iis asp.net-web-api asp.net-mvc-5 iis-8 (14)


मुझे एक खाली एएसपी.NET एप्लिकेशन में डब्ल्यूसीएफ सेवा की मेजबानी करने की कोशिश करते समय यह त्रुटि मिली। पूरा समाधान विंडोज 8.1 पर चल रहे आईआईएस 8.5 पर .NET 4.5 प्लेटफॉर्म का उपयोग कर रहा था। गॉचा को "विंडोज़ सुविधाओं को चालू या बंद करें" खोलना था, एएसपी.NET 4.5 उन्नत सेवाओं के तहत डब्ल्यूसीएफ अनुभाग में जाएं और HTTP सक्रियण जांचें। आपको सिस्टम को पुनरारंभ करने के लिए कहा जाएगा।

यह HTTP 500.19 को ठीक करना चाहिए!

11-एफईबी-2016 संपादित करें बस विंडोज 10 प्रो, आईआईएस 10 पर एक मुद्दा मिला, इस बार, यह एक HTTP 404.0 था। फिक्स अभी भी वही है, विंडोज़ सुविधाओं के तहत "HTTP सक्रियण" चालू करें -> .NET Framework 4.6 उन्नत सेवाएं -> डब्ल्यूसीएफ सेवाएं -> HTTP सक्रियण

मेरे पास विजुअल स्टूडियो 2013 द्वारा निर्मित एक साधारण वेबएपीआई है। जब मैं इसे VS13 से चलाता हूं तो यह अच्छी तरह से काम करता है लेकिन जब मैं स्थानीय आईआईएस में प्रोजेक्ट की प्रतिलिपि बनाता हूं तो यह मुझे निम्न त्रुटि देता है।

HTTP त्रुटि 500.19 - आंतरिक सर्वर त्रुटि अनुरोधित पृष्ठ तक पहुंचा नहीं जा सकता क्योंकि पृष्ठ के लिए संबंधित कॉन्फ़िगरेशन डेटा अमान्य है।

विस्तृत त्रुटि जानकारी:

मॉड्यूल आईआईएस वेब कोर

अधिसूचना BeginRequest

हैंडलर अभी तक निर्धारित नहीं है

त्रुटि कोड 0x80070021

कॉन्फ़िगर त्रुटि इस कॉन्फ़िगरेशन अनुभाग का उपयोग इस पथ पर नहीं किया जा सकता है। यह तब होता है जब अनुभाग अभिभावक स्तर पर बंद हो जाता है। लॉकिंग या तो डिफ़ॉल्ट रूप से है (overrideModeDefault = "Deny"), या ओवरराइड मोड = "अस्वीकार करें" या विरासत अनुमतिऑवर्राइड = "झूठी" के साथ एक स्थान टैग द्वारा स्पष्ट रूप से सेट करें।

कॉन्फ़िगर फ़ाइल \? \ C: \ inetpub \ wwwroot \ APITeslin \ web.config

कॉन्फ़िगर स्रोत:

36:   <system.webServer>  
37:     <handlers>  
38:       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />



विंडोज 8.1 पर, आईआईएस 8.5 मेरे लिए समाधान नियंत्रण कक्ष से 4.5 पंजीकृत करना था:

कार्यक्रम और विशेषताएं> विंडोज़ सुविधाओं को चालू या बंद करें> सूचना सूचना सेवाएं> वर्ल्ड वाइड वेब सेवाएं> एप्लिकेशन विकास सुविधाएं> एएसपी.NET 4.5 का चयन करें

ओके पर क्लिक करें।




कृपया <staticContent /> लाइन और इसे web.config से मिटा दें।




मेरे लिए काम किया गया समाधान मेरा वर्तमान Web.config को हटाना और एक नया जोड़ना था। इससे मेरे लिए समस्या हल हो गई




आपका web.config वर्णन करता है कि आप फॉर्म प्रमाणीकरण का उपयोग कर रहे हैं - सुनिश्चित करें कि आप आईआईएस में चल रही वेबसाइट के लिए प्रमाणीकरण मेनू के तहत फॉर्म प्रमाणीकरण सक्षम करें और IIS में अनाम प्रमाणीकरण अक्षम करें।




मैंने इसे निम्नलिखित करके हल किया:

WebServer(ISS)->WebServer->Application Development
add .NET Extensibility 3.5
add .NET Extensibility 4.5
add ASP.NET 4.5
add ISAPI Extensions
add ISAPI Filters




सर्वर स्तर पर प्रासंगिक आईआईएस (7.5) कॉन्फ़िगरेशन सेटिंग्स को अनलॉक करने का प्रयास करें, निम्नानुसार:

  1. ओआईएस प्रबंधक खोलें
  2. कनेक्शन फलक में सर्वर का चयन करें
  3. मुख्य फलक में कॉन्फ़िगरेशन संपादक खोलें
  4. अनुभाग ड्रॉप डाउन में, अनलॉक करने के लिए अनुभाग का चयन करें, उदाहरण के लिए system.webServer> defaultPath
  5. दाएं फलक में विशेषता अनलॉक पर क्लिक करें
  6. अनलॉक करने के लिए आपको आवश्यक किसी भी अन्य सेटिंग्स के लिए दोहराएं
  7. IIS को पुनरारंभ करें (वैकल्पिक) - Conncetions फलक में सर्वर का चयन करें, क्रिया फलक में पुनरारंभ करें क्लिक करें



यदि आप पहली बार उस कंप्यूटर पर आईआईएस चला रहे हैं, तो आपको एएसपी.नेट आईआईएस पंजीकरण उपकरण (aspnet_regiis.exe) चलाने का प्रयास करना चाहिए।

यहां ऐसा करने का तरीका बताया गया है: यदि आप .NET Framework v4 का उपयोग कर रहे हैं, व्यवस्थापक के रूप में ओपन कमांड प्रॉम्प्ट का उपयोग कर रहे हैं, और निर्देशिका को अपने .net फ्रेमवर्क बेस फ़ोल्डर में बदलकर उपयोग कर रहे हैं:

CD C:\Windows\Microsoft.NET\Framework\v4.0.30319

या, यदि आप 64 बिट कंप्यूटर का उपयोग कर रहे हैं, तो इसका उपयोग करें:

CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319

जब आपने उपयुक्त निर्देशिका में सफलतापूर्वक नेविगेट किया है, तो एएसपी.नेट आईआईएस पंजीकरण उपकरण का उपयोग करके निष्पादित करें:

aspnet_regiis -i

यदि आप एक अलग .NET फ्रेमवर्क संस्करण का उपयोग कर रहे हैं, तो उचित फ़ोल्डर नाम के साथ v4.0.30319 को प्रतिस्थापित करें।

उम्मीद है की यह मदद करेगा।




विंडोज सर्वर पर .NET कोर ऐप्स के लिए (मेरे मामले में 2012 आईआईएस 10 के साथ) यह .NET कोर विंडोज सर्वर होस्टिंग बंडल ( link ) स्थापित करने के बाद काम किया।




हमारे मामले में, हम कुछ दिनों से इस त्रुटि के साथ संघर्ष कर रहे थे। यह पता चला है कि नियंत्रण कक्ष, प्रोग्राम में, विंडोज़ सुविधाओं को चालू या बंद करें।

हमने इंटरनेट इन्फॉर्मेशन सर्विसेज, वर्ल्ड वाइड वेब सर्विसेज, एप्लीकेशन डेवलपमेंट फीचर्स का चयन किया और वहां हम अपने विकास पर्यावरण से जुड़े सुविधाओं के सेट की जांच करते हैं। उदाहरण के लिए: एएसपी.नेट 4.6। .NET एक्सटेंसिबिलिटी 4.6, आदि

यह काम करता हैं!




खैर, हम अमेज़ॅन वेब सेवाओं का उपयोग कर रहे हैं और इसलिए हम इस समस्या से निपटने के लिए स्क्रिप्ट और प्रोग्राम का उपयोग करना चाहते हैं। तो मैं एक कमांड लाइन उपकरण के लिए शिकार पर रहा हूँ। तो पहले मैंने दौड़ने की चाल की कोशिश की

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

लेकिन क्योंकि मैं क्लाउड आधारित विंडोज सर्वर 2012 चला रहा हूं, इसकी शिकायत हुई

This option is not supported on this version of the operating system. Administrators should instead install/uninstall ASP.NET 4.5 with IIS8 using the "Turn Windows Features On/Off" dialog, the Server Manager management tool, or the dism.exe command line tool. For more details please see http://go.microsoft.com/fwlink/?LinkID=216771.

और मैं गुगल हो गया और आधिकारिक माइक्रोसॉफ्ट समर्थन पृष्ठ KB2736284 पाया । तो एक कमांड लाइन उपकरण dism.exe । तो मैंने निम्नलिखित की कोशिश की

dism /online /enable-feature /featurename:IIS-ASPNET45

लेकिन इसने शिकायत की और फीचर नामों की एक सूची देने की कोशिश की, इसलिए मैंने उन्हें एक-एक करके कोशिश की और मैंने प्रत्येक के बाद अपने वेबएपीआई वेबपेज का परीक्षण किया और यह सूची में नीचे एक के बाद काम किया।

dism /online /enable-feature /featurename:IIS-ApplicationDevelopment
dism /online /enable-feature /featurename:IIS-ISAPIFilter 
dism /online /enable-feature /featurename:IIS-ISAPIExtensions 
dism /online /enable-feature /featurename:IIS-NetFxExtensibility45 

और इसलिए अब मैं अपनी वेबएपीआई साइट पर ब्राउज़ कर सकता हूं और एपीआई जानकारी देख सकता हूं। इससे कुछ लोगों की मदद करनी चाहिए। [हालांकि, मैं पूरी तरह से जंगल से बाहर नहीं हूं और मैं बॉक्स के बाहर से वेबसाइट तक नहीं पहुंच सकता। अभी तक उस पर कार्य कर रहा हूं।]

इसके अलावा, मैंने कुछ लोगों के जवाबों के बाद कुछ पहले कदम उठाए थे। मैं पुष्टि कर सकता हूं कि निम्न फ़ीचर प्रतिनिधिमंडल को बदलने की आवश्यकता है (हालांकि मैं इनके लिए कमांड लाइन उपकरण ढूंढना चाहता हूं)।

In Feature delegation

Change 
'Handler Mappings' from Read Only to Read/Write

Change 
'Modules' from Read Only to Read/Write

Change 
'SSL Settings' from Read Only to Read/Write



मुझे भी एक ही समस्या हो रही थी लेकिन मस्तिष्क के बाद आईआईएस और Google के साथ कई घंटों तक हमला हुआ। मुझे समाधान मिला। यह त्रुटि इसलिए है क्योंकि IIS applicationHost.config में कुछ सेटिंग्स अक्षम हैं।

समाधान के लिए नीचे दिए गए कदम हैं:

  1. C:\Windows\System32\inetsrv\config\applicationHost.config और नोटपैड में खोलें
  2. में मौजूद निम्न कुंजी मान बदलें

    • <section name="handlers" overrideModeDefault="Deny" /> इस मान को "अस्वीकार करें" से "अनुमति दें" में बदलें

    • <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> इस मान को "अस्वीकार करें" से "अनुमति दें" में बदलें

यह मेरे लिए काम किया।




ठीक उसी त्रुटि को मिला और इस प्रश्न पर आया। जैसा कि @ स्पेसबिसन ने टिप्पणियों में उल्लेख किया है, यह उत्तर समाधान का वर्णन करता है - https://.com/a/12867753/404099 । मैंने इसे बहुत देर से देखा और यह कुछ कदम याद करता है। इसी से मेरा काम बना है:

विंडोज सर्वर 2012, आईआईएस 8.5 । अन्य संस्करणों के लिए भी काम करना चाहिए।

  • सर्वर मैनेजर पर जाएं, भूमिकाएं और विशेषताओं को जोड़ें पर क्लिक करें
  • भूमिका अनुभाग में चुनें: वेब सर्वर
    • सुरक्षा उपधारा के तहत सबकुछ चुनें (मैंने डाइजेस्ट, आईपी प्रतिबंध और यूआरएल प्रमाणीकरण को छोड़ दिया है क्योंकि हम उनका उपयोग नहीं करते हैं)
    • आवेदन विकास के तहत .NET एक्सटेंसिबिलिटी 4.5, एएसपी.नेट 4.5 और दोनों आईएसएपीआई प्रविष्टियां चुनें
  • विशेषताएं अनुभाग में चुनें: नेट 3.5, .NET 4.5, एएसपी.नेट 4.5
  • वेब सर्वर अनुभाग में चुनें: वेब सर्वर (सभी), प्रबंधन उपकरण (आईआईएस प्रबंधन कंसोल और प्रबंधन सेवा), विंडोज प्रमाणीकरण - यदि आप इसका उपयोग कर रहे हैं



समस्या यह है कि मैं अपने मौजूदा नियंत्रकों के समान वेब एपीआई नियंत्रकों का नाम नहीं दे सकता।

आप अपने एपीआई नियंत्रक को अपने मौजूदा नियंत्रकों के समान नाम के साथ प्राप्त कर सकते हैं। कंपाइलर को खुश करने के लिए बस उन्हें एक अलग नामस्थान में रखें।

उदाहरण:

namespace MyAppName.Controllers
{
    public class ProductsController: Controller
    {
        public ActionResult Index()
        {
            var products = productsRepository.GetProducts();
            return View(products);
        }
    }
}

और एपीआई नियंत्रक:

namespace MyAppName.Controllers.Api
{
    public class ProductsController: ApiController
    {
        public IEnumerable<Product> Get()
        {
            return productsRepository.GetProducts();
        }
    }
}

और फिर आपके पास क्रमशः काम करने के लिए: /products और /api/products हैं।





asp.net-mvc iis asp.net-web-api asp.net-mvc-5 iis-8