ASP.NET MVC को डीबग करते समय IIS एक्सप्रेस पहुँच अस्वीकृत त्रुटि देता है


102

मैंने ASP.NET MVC 3 प्रोजेक्ट बनाया है, और विकसित करते समय वेब सर्वर के रूप में IIS एक्सप्रेस का उपयोग कर रहा हूं। जब मैं डीबग करने का प्रयास करता हूं, तो मुझे नीचे त्रुटि संदेश मिलता है।

इसे कैसे हल किया जा सकता है?

/ 'अनुप्रयोग में सर्वर त्रुटि

प्रवेश निषेध है। विवरण: इस अनुरोध को पूरा करने के लिए आवश्यक संसाधनों तक पहुँचने के दौरान एक त्रुटि हुई। अनुरोधित URL तक पहुंचने के लिए सर्वर को कॉन्फ़िगर नहीं किया जा सकता है।

त्रुटि संदेश 401.2 .: अनधिकृत: सर्वर कॉन्फ़िगरेशन के कारण लॉगऑन विफल। सत्यापित करें कि आपके द्वारा प्रदत्त क्रेडेंशियल और वेब सर्वर पर सक्षम प्रमाणीकरण विधियों के आधार पर आपको इस निर्देशिका या पृष्ठ को देखने की अनुमति है। अतिरिक्त सहायता के लिए वेब सर्वर के व्यवस्थापक से संपर्क करें।


3
क्या आप प्रशासनिक विशेषाधिकार के बिना IISExpress चला रहे हैं?
चंदमक

2
इसलिए थोड़ी देर के लिए इस पर मेरे सिर को पीटने के बाद आखिरकार मुझे एहसास हुआ क्योंकि वीएस ने एक डिफ़ॉल्ट पेज सेट नहीं किया था और जाहिरा तौर पर IISExpress.exe फ़ोल्डर को स्पष्ट करने के लिए लिस्टिंग नहीं देता है।
मार्क एलन

जवाबों:


113

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


2
यह Visual Studio 2012 के लिए विशिष्ट नहीं है, इसे कम से कम Visual Studio 2010 पर भी बनाया जा सकता है।
--c लोप्स

5
वीएस 2013 में मेरे लिए काम किया।
kaybee99

2
आपको बेनामी प्रमाणीकरण को भी अक्षम करना होगा।
चमकता हुआ

1
सॉल्यूशन एक्सप्लोरर प्रोजेक्ट नोड के तहत प्रॉजेक्ट नाम पर क्लिक करें, फिर प्रॉपर्टीज विंडो पर जाएं, वहां आप देख सकते हैं कि प्रॉपर्टी विंडोज ऑथेंटिकेशन इसे
एनेबल

1
मुझे यह गुण विंडो में कहीं भी दिखाई नहीं दे रहा है। मैं वी। एस। 2015 का उपयोग कर रहा हूं
मार्क बोनफे

99

यदि इस समस्या के लिए कारण IIS एक्सप्रेस WindowsAuthentication की अनुमति नहीं था। इसे सेट करके सक्षम किया जा सकता है

<windowsAuthentication enabled="true">

C: \ Users [उपयोगकर्ता नाम] \ Documents \ IISExpress \ config में स्थित applicationhost.config फ़ाइल में।


19
Visual Studio 2010 और 2012 आपके लिए, प्रति प्रोजेक्ट के लिए इस सेटिंग को जोड़ सकता है, ताकि वैश्विक सेटिंग अपने डिफ़ॉल्ट से परिवर्तित न हो, देखें stackoverflow.com/a/7168308/23566
रॉबर्ट क्लेपुल

मैं उस सेटिंग की कोशिश कर रहा हूं, क्योंकि मुझे वीएसओ 2013 में भी यह गलती से हो रही है , आइए देखें कि क्या यह मदद करता है, मैं आपको बता दूंगा।
मैट

2
यदि आप% userprofile% \ दस्तावेज \ iisexpress \ config \ applicationhost.config का उपयोग करते हैं तो बेहतर है। मेरा D पर था: (धन्यवाद Dan! Danesparza.net/2014/09/… )
जेरमी रटले

यह मेरे लिए एकमात्र समाधान है, बहुत बहुत धन्यवाद!
मोहम्मद अनीनी

वीएस 2017 में यह कोशिश की और यह काम नहीं किया। जेसन द्वारा पोस्ट किए गए समाधान ने काम किया।
myroslav

73

मैंने जेसन के उत्तर का उपयोग किया लेकिन यह स्पष्ट करना चाहता था कि गुणों में कैसे लाया जाए।

  1. समाधान एक्सप्लोरर में परियोजना का चयन करें

यहां छवि विवरण दर्ज करें

  1. F4 प्रॉपर्टीज़ पर जाएं (राइट क्लिक प्रॉपर्टीज़ से अलग)
  2. सक्षम करने के लिए Windows प्रमाणीकरण बदलें

यहां छवि विवरण दर्ज करें


3
इसे बाहर वर्तनी के लिए बड़ा धन्यवाद और यह निर्दिष्ट करना कि यह F4 गुण है जिसे बदलने की आवश्यकता है।
पीटरएनडीसीओ

1
धन्यवाद! मुझे 'बेनामी प्रमाणीकरण' को 'सक्षम' में भी सेट करना था।
महेश

1
बिग थैंक यू भी!
फनमैटर्स

1
आप खूबसूरत हैं।
कोषेरजेलीफ़िश

1
मैं वीएस 2015 का उपयोग कर रहा हूं, यह मौजूद नहीं है!
मार्क बोनाफे

18

IIS एक्सप्रेस पर होस्टिंग: 1. प्रोजेक्ट का चयन करने के लिए समाधान एक्सप्लोरर में अपनी परियोजना पर क्लिक करें। 2. यदि गुण फलक खुला नहीं है, तो इसे खोलें (F4)। 3. अपनी परियोजना के लिए गुण फलक में: ए) "बेनामी प्रमाणीकरण" को "अक्षम" पर सेट करें। बी) "विंडोज ऑथेंटिकेशन" को "सक्षम" पर सेट करें।


12

मेरे मामले में मुझे फाइल को खोलना था:

C:\...\Documents\IISExpress\config\applicationhost.config

मेरे पास यह फ़ाइल थी:

  <authentication>
  <anonymousAuthentication enabled="true" User="" />

मैंने अभी हटा दिया User="" हिस्सा । मैं वास्तव में नहीं जानता कि यह बात कैसे हुई ... :)

नोट: सुनिश्चित करें कि आपके पास कुछ इस तरह है applicationhost.config:

   .
   .
   .
   <location path="MyCompany.MyProjectName.Web">
        <system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="true" />
                    <windowsAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>

आप यहां एक नज़र रखना चाहते हैं: https://stackoverflow.com/a/10041779/114029

अब मैं उम्मीद के मुताबिक लॉगिन पेज तक पहुंच सकता हूं।


1
मैंने आपके कदमों का अनुसरण किया फिर भी यह मेरे लिए काम नहीं कर रहा है। Vs2010 से खोला गया तो यह ठीक काम करता है, बनाम 2013 में मुद्दा
GANI

@ user1016740 मुझे यकीन नहीं है क्योंकि इस समस्या को हल करने की कोशिश करने के लिए संभावनाओं / रास्तों की अधिकता है। मैंने यहां जिन चरणों का वर्णन किया है, उन्होंने इसे अपने वातावरण में हल किया है जो मुझे लगता है कि आप से अलग है।
लेनियल मैकाफेर्री

8

मेरे मामले में VS से मेरे ऐप के पिछले रन ने URL आरक्षित कर दिया है। मैं इसे कंसोल में चलाकर देख सकता था:

netsh http show urlacl

इस आरक्षण को हटाने के लिए मैंने इसे एक उच्चीकृत कंसोल में चलाया :

netsh http delete urlacl http://127.0.0.1:10002/

मैं इन चरणों का पाया यहाँ मेरी समस्या हल।

मैं VS2013 का उपयोग कर रहा हूं


यदि आप कभी भी एक साथ कई पोर्ट पर साइट चलाने के लिए अपने applicationhost.config को संपादित कर चुके हैं तो यह सुपर आसान है। .Config से प्रविष्टियों को हटाने से netsh में कोई आरक्षण नहीं हटाता है। धन्यवाद दोस्त।
दुस्दा

5

मुझे Administrative Modeइस त्रुटि से छुटकारा पाने के लिए Visual Studio चलाना था ।


3

मुझे भी यही समस्या थी और आखिरकार मैं इससे आगे निकल सका।

Solution ExplorerRight click on projectPropertiesWeb tabProject Url

मैंने एक और पोर्ट नंबर चुना है , और हर चीज ठीक हो गई!


1

उपरोक्त में से किसी ने भी मेरे लिए काम नहीं किया था। यह आज से पहले मेरे लिए काम कर रहा था। मुझे तब एहसास हुआ कि मैं अपने लैपटॉप पर एक होस्टेड कनेक्शन बनाने के साथ काम कर रहा था और अपने वायरलेस नेटवर्क कनेक्शन के साथ एक इंटरनेट कनेक्शन साझा किया था।

मेरी समस्या को हल करने के लिए:

कंट्रोल पैनल> नेटवर्क और इंटरनेट> नेटवर्क कनेक्शन पर जाएं

आपके पास होने वाले किसी भी द्वितीयक वायरलेस नेटवर्क कनेक्शन पर राइट क्लिक करें (मेरा नाम वायरलेस नेटवर्क कनेक्शन 2 था) और 'गुण' पर क्लिक करें।

शीर्ष पर 'साझाकरण' टैब पर जाएं।

'कंप्यूटर के इंटरनेट कनेक्शन के माध्यम से अन्य नेटवर्क उपयोगकर्ताओं को कनेक्ट करने की अनुमति दें' वाले बॉक्स को अनचेक करें।

ओके हिट> फिर अप्लाई करें।

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


1

मैंने अपनी web.config फ़ाइल खोली, और इस अनुभाग को पाया और हटा दिया:

<authorization>
  <deny users="?" />
</authorization>

और मेरी साइट सामने आई, लेकिन प्रमाणीकरण के साथ जारी किए गए हैं।


ठीक है, इसने समस्या को हल करने में मदद की लेकिन अब मेरे पास कुछ अन्य मुद्दे हैं जिन्हें मुझे ठीक करने की आवश्यकता है।
जमशेद कामरान

0

मैंने अभी इस सटीक समस्या को IIS EXPRESS में ठीक किया है। इसे एप्लिकेशन होस्ट .config से नीचे के स्थान के लिए विशिष्ट करके संपादित किया है। मैंने विजुअल स्टूडियो 2012 में विंडोज ऑथेंटिकेशन सेट किया था लेकिन जब मैं एक्सएमएल में गया तो यह इस तरह दिख रहा था।

विंडोज़ ऑर्टिकल टैग को नीचे दिखाए गए अनुसार जोड़ा जाना चाहिए।

<windowsAuthentication enabled="true" />

<location path="MyApplicationbeingDebugged">
        ``<system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <!-- INSERT TAG HERE --> 
                </authentication>
            </security>
        </system.webServer>
</location>

0

मैं प्रोवाइडर होस्टेड का उपयोग करके SharePoint के लिए एक सरल ऐप बनाने की कोशिश में इस समस्या से जूझ रहा हूं।

Applicationhost.config के माध्यम से जाने के बाद, अनुभाग में, बुनियादी आधार गलत तरीके से सेट किया गया था। मैंने अपने परिदृश्य में 401.2 से आगे निकलने के लिए इसे सच में बदल दिया। IIS एक्सप्रेस के लिए applicationhost.config को खोजने के लिए अन्य लिंक के बहुत सारे हैं।


0

मैंने यह "पूर्ण" उत्तर कहीं नहीं देखा; मैं बस पोर्ट नंबर बदलने के बारे में एक के बाद मैं यह पोस्ट देखा, तो meh।

सुनिश्चित करें कि आपके प्रोजेक्ट प्रॉपर्टी में विज़ुअल स्टूडियो में प्रोजेक्ट url को उसी url या पोर्ट को नहीं सौंपा गया है जो IIS में किसी भी साइट बाइंडिंग के लिए उपयोग किया जा रहा है।

मैं इसके लिए "क्यों" देख रहा हूं, लेकिन मेरे सिर के ऊपर से मेरी धारणा यह है कि IIS और विज़ुअल स्टूडियो के IIS एक्सप्रेस वर्चुअल निर्देशिका बनाते समय उसी निर्देशिका का उपयोग करते हैं और Visual Studio केवल नई वर्चुअल निर्देशिकाएँ बना सकता है और संशोधित नहीं कर सकता यह साइट पर बाइंडिंग लागू होने पर IIS ने जो भी बनाया है।

क्यों मुझे सही करने के लिए स्वतंत्र महसूस करें।


0

हमारा त्रुटि पृष्ठ लॉगिन पृष्ठ के पीछे था, लेकिन लॉगिन पृष्ठ में एक नियंत्रण में त्रुटि थी, जो एक अनंत लूप बनाता है।

हमने आपत्तिजनक पृष्ठ से सभी नियंत्रणों को हटा दिया, और उन्हें एक-एक करके वापस जोड़ा जब तक कि सही नियंत्रण स्थित और तय नहीं हो गया।


0

मेरे मामले में (ASP.NET MVC 4 अनुप्रयोग), Global.asaxफ़ाइल गायब थी। यह एक विस्मयादिबोधक चिह्न के साथ समाधान एक्सप्लोरर में दिखाई दे रहा था। मैंने इसे बदल दिया और त्रुटि दूर हो गई।

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