MVC4 HTTP त्रुटि 403.14 - निषिद्ध


88

मेरे पास एक .net4.5 ASP.NET MVC4 वेब ऐप है जो स्थानीय रूप से ठीक काम करता है (IIS एक्सप्रेस और देव सर्वर), लेकिन एक बार जब मैं इसे अपने वेब सर्वर पर तैनात करता हूं तो यह 403 त्रुटि फेंकता है। मैंने सर्वर पर .Net 4.5RC स्थापित किया है और यहां तक ​​कि पूरी कोशिश की है aspnet_regiis -i कि हर कोई अपने मुद्दों के लिए MVC / .Net के पिछले संस्करणों के साथ सिफारिश करे लेकिन इससे कोई फायदा नहीं हुआ।

कोई विचार?

संपादित करें : स्थिति के बारे में अधिक जानकारी। सर्वर 32 बिट है और मेरे पास 4 अन्य एमवीसी 3 एप्लिकेशन हैं जो ठीक काम करते हैं। यह सिर्फ मेरा MVC4 ऐप है जो काम नहीं कर रहा है।


जब मैंने एक नया asp.net 4.5 वेब फॉर्म ऐप बनाया तो मैं इसी समस्या में भाग गया । इसने स्थानीय रूप से ठीक काम किया (IIS 7.5), लेकिन जब टेस्ट सर्वर (IIS 7.5 भी) में तैनात किया गया, तब मेरे सभी बंडल और मिनिअर्ड जावास्क्रिप्ट और css फाइलें 404 के साथ लोड होने में असफल रही। RunAllManagedModulesForAllRequests के बारे में नीचे दिए गए जवाब ने मेरे लिए समस्या हल कर दी!
ClearCloud8

मैंने इस सवाल का जवाब दिया है: stackoverflow.com/questions/24343788/…
fsbf

<system.webServer> <मॉड्यूल runAllManagedModulesForAllRequests = "true" /> </system.webServer>
Jinto John

जवाबों:


172

प्रयत्न

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/> 
 </system.webServer>

के जरिए

/server/405395/unable-to-get-anything-except-403-from-a-net-4-5-website


1
था कि जगह में, सब कुछ किया है, और अभी भी केवल MVC 4 साइटों काम करते हैं। काम करने के लिए कुछ और तरकीबें भी होनी चाहिए।
मैक्सिम वी। पावलोव

1
यह। खुशी के साथ अन्य सभी स्टॉक समाधानों की कोशिश की, लेकिन यह एक था जिसने समस्या को हल किया।
जूलिया हेवर्ड

1
प्रिय मित्र, मैं इसे करता हूं, लेकिन यह काम नहीं करता है। वास्तव में, मैं एमवीसी 4 और विजुअलस्टडियो 2012 के साथ काम कर रहा था, मेरी परियोजना कल तक अच्छी तरह से काम करती है, लेकिन मेरे कोड में कुछ सामान्य बदलावों के बाद, यह त्रुटि डिफ़ॉल्ट पेज (होम / इंडेक्स) में बढ़ जाती है। क्या कोई शरीर मुझे खुश करने में मदद कर सकता है? ..

4
यह फिक्स इस समस्या के लिए उपयुक्त नहीं है (जेसन कोपामन्स उत्तर में लिंक देखें)। बहुत बेहतर संबंधित हॉटफिक्स डाउनलोड कर रहा है यहाँ microsoft.com/en-us/download/…
अहमद इब्राहिम

@ अहमद इब्राहिम वास्तव में समस्या का समाधान है। यह निर्धारण केवल 64 बिट के लिए है, यह प्रश्न स्पष्ट रूप से 32 बिट बताता है। कुछ कॉन्फ़िगरेशन हैं जिनके लिए RAMMFAR सबसे विश्वसनीय कार्य समाधान है, और यदि CDN का उचित उपयोग किया जाता है तो न्यूनतम सर्वर लोड जोड़ता है।
MarkKGreenway

22

किसी निर्देशिका की सामग्री को सूचीबद्ध करने की अनुमति नहीं देने के लिए त्रुटि 403.14 HTTP त्रुटि कोड है। कृपया सुनिश्चित करें कि

  1. आपने IIS में एप्लिकेशन के रूप में वेबसाइट को सेटअप किया है
  2. आपके पास .NET 4.5 सर्वर पर स्थापित है
  3. आपने .NET फ्रेमवर्क के उचित संस्करण को चलाने के लिए एप्लिकेशन पूल सेट किया है (यानी। यह .NET 2.0 पर सेट नहीं है
  4. आप अपने एप्लिकेशन पूल पर एकीकृत पाइपलाइन का उपयोग कर रहे हैं
  5. .NET 4.5 वास्तव में IIS में पंजीकृत है। कृपया इस अंक / संकल्प के लिए इस पोस्ट को देखें

आमतौर पर, ए और डी एमवीसी तैनाती से लेकर आईआईएस तक के सबसे बड़े मुद्दे हैं


1. मैंने वेबसाइट को एप्लिकेशन के रूप में सेटअप नहीं किया है। 2. मेरे पास .net 4.5 स्थापित है, 3. सही ढांचे को लक्षित करने वाला मेरा ऐप पूल। 4. मेरा पूल क्लासिक का उपयोग करने के लिए सेट किया गया था, इसे एकीकृत में बदल दिया लेकिन मदद नहीं की। 5. मुझे पूरा यकीन है कि 4.5 पंजीकृत है।
मिथुन_दा

1
@mithun_daa - यदि आपने अपनी वेबसाइट को एक एप्लिकेशन के रूप में सेट नहीं किया है, तो यह बहुत आसान है -> वर्चुअल निर्देशिका / वेबसाइट पर राइट क्लिक करें और एप्लिकेशन में कनवर्ट करें (या एप्लिकेशन जोड़ें, शब्दावली इस समय मुझसे बच जाती है)
टॉमी

क्या यह MVC4 विशिष्ट बात है? क्योंकि मैंने कभी भी अपने MVC3 प्रोजेक्ट्स को एप्लिकेशन के रूप में सेट नहीं किया है और वे ठीक काम करते हैं।
मिथुन_दादा

हो सकता है कि आप तब कैसे तैनात हों -> लेकिन किसी भी .NET वेब एप्लीकेशन को IIS में एप्लिकेशन के रूप में सेट किया जाना चाहिए। हालाँकि, यदि आप इन्हें डिफ़ॉल्ट वेबसाइट के तहत डाल रहे हैं, तो यह डिफ़ॉल्ट वेबसाइट एप्लिकेशन के तहत चल रहा है। सुनिश्चित करें कि डिफ़ॉल्ट वेबसाइट का एप्लिकेशन पूल सही ढंग से कॉन्फ़िगर किया गया है (.NET 4 / एकीकृत)। जब आप IIS में एक आभासी निर्देशिका / आभासी वेबसाइट बनाते हैं, तो आपके पास इसे अपने स्वयं के अनुप्रयोग पर भी सेट करने का विकल्प होता है।
टॉमी

मैंने शायद आपको भ्रमित कर दिया है, लेकिन कोई भी साइट डिफ़ॉल्ट वेब साइट के अंतर्गत नहीं है। मैं IIS7 में "साइटें" पर राइट क्लिक करता हूं और "वेब साइट जोड़ें" चुनता हूं। इस तरह से मैं कर रहा हूँ।
मिथुन_दा

11

शायद ... यदि आप प्रकाशित विज़ार्ड का उपयोग करते हैं (जैसे मैंने किया था) और प्रकाशन के दौरान "Precompile" का चयन करें "चेकबॉक्स (जैसे मैंने किया था) और समान लक्षण देखें ...

हाँ, मैंने खुद को सिर के ऊपर से हरा दिया, लेकिन इस बॉक्स को अनचेक करने के बाद, एक प्रतीत होता है कि असंबंधित सेटिंग, वर्णित सभी लक्षण पुन: उत्पन्न करने के बाद चले जाते हैं।

उम्मीद है कि यह कुछ लोगों को ठीक करता है।


यदि आप यह कर रहे हैं एक संभावित मूल कारण उत्पादन वातावरण में एक बाहरी पुस्तकालय का एक अलग संस्करण है। मेरे पास मेरा mvc ऐप 3 जी पार्टी के नए संस्करण और उत्पादन सर्वर में पुराने संस्करण के खिलाफ संकलित था ..
ValGe

यहाँ लड़का आश्चर्य, बच्चा, चमत्कार आदमी, घटना, अजेय, राजा, यहाँ है @Brian Kirkpatrick महिलाओं और सज्जन
लुइस Villarroel

10

Windows-> प्रारंभ -> विधवा सुविधाओं को चालू और बंद करें

सुनिश्चित करें कि आप आवश्यक विकल्पों की जांच कर रहे हैं

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


6

आवेदन करने से पहले

runAllManagedModulesForAllRequests="true"/>

नीचे दिए गए लिंक पर विचार करें जो कम कठोर विकल्प का सुझाव देता है। पोस्ट में लेखक स्थानीय web.config के लिए निम्नलिखित परिवर्तन प्रदान करता है:

  <system.webServer>
    <modules>
    <remove name="UrlRoutingModule-4.0" />
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
    </modules>

http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html


यही असली जवाब है। धन्यवाद!
स्पाइवोनियस

5

एक रिफ्लेक्टर है -> विज़ुअल स्टूडियो 2012 में नाम बदला बग जिसने शाब्दिक स्ट्रिंग के अंदर "आईडी" का गलत नाम दिया जिसने मेरे रूटकॉन्फ़िग.कल्स में url पैरामीटर मान के । इसने विंडोज सर्वर 2012 और विंडोज सर्वर 2008 आर 2 दोनों में एक ताजा और अन्यथा सही सेटअप पर 403.14 का कारण बना।

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

को बदल दिया गया

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{renamed_text}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

मेरे लिए, मुझे बहुत पहले पता चला था कि मैं हर रूट के लिए एक नाम बनाने से बचने के nullलिए nameपैरामीटर में प्रवेश कर सकता हूं । यह पता चला है कि यह 403 कभी-कभी (केवल हमारे ठंढे वातावरण पर, विन सर्वर 2008 R2 रनिंग .NET 4.5.1, वीवीसी 3 परियोजना में एमवीसी 5 का कारण बनता है। यह हल करने के लिए मैंने प्रत्येक मार्ग के लिए एक नाम जोड़ा है।
ट्राइस्टैंकॉफी

2

आप एक 403 भी प्राप्त कर सकते हैं यदि देव सर्वर के साथ परीक्षण करते समय आप एकीकृत पाइपलाइन का उपयोग कर रहे हैं और फिर अपने लाइव IIS 7.5 वेब सर्वर पर क्लासिक पाइपलाइन मोड के रूप में स्थापित करते हैं, तो भी मुझे मेरा app_data फ़ोल्डर याद आ रहा था जो भी आवश्यक था


2

यदि आप Windows 8, या सर्वर 2012 पर IIS 8.5 चला रहे हैं, तो आप पा सकते हैं कि रनिंग mvc 4/5 (.net 4.5) वर्चुअल निर्देशिका में काम नहीं करता है। यदि आप अपने स्थानीय मशीन पर वापस इंगित करने के लिए होस्ट फ़ाइल में एक स्थानीय होस्ट प्रविष्टि बनाते हैं और फिर उस फ़ोल्डर में एक नई स्थानीय IIS वेबसाइट को इंगित करते हैं (मिलान होस्ट हेडर प्रविष्टि के साथ) तो आप पाएंगे कि यह तब काम करता है।


एक ही उत्तर को कई स्थानों पर क्यों पोस्ट करें ?
devnull

8
क्योंकि मैं समाधान को ट्रैक करने की कोशिश कर रहा था, और यह दोनों से संबंधित है। किसी को इसके शिकार से बचाएं।
मस्तरो

आपको डुप्लिकेट उत्तर पोस्ट नहीं करने चाहिए। मेरे द्वारा यही कहा जा सकता है।
devnull

1
<system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/> 
 </system.webServer>

U, उपरोक्त कोड का उपयोग कर सकता है


1

मैंने DefaultAppPoolIIS में नए ऐप के एप्लिकेशन पूल को सेट किया था जो स्पष्ट रूप से Classicपाइपलाइन के साथ उपयोग कर रहा है .NET v.2.0

समस्या को हल करने के लिए मैंने Integratedपाइपलाइन का उपयोग करके एक नया ऐप पूल बनाया और .NET v4.0। बस इस नए आवेदन के लिए और फिर सब कुछ उम्मीद के मुताबिक काम करना शुरू कर दिया।

इस नए एप्लिकेशन पूल को एप्लिकेशन को असाइन करना न भूलें। IIS में एप्लिकेशन का चयन करें, क्लिक करें Basic Settingsऔर फिर ऐप के लिए नया ऐप पूल चुनें।


0

जो मैं हाल ही में देख रहा हूं वह IIS है और 32 बिट अनुप्रयोगों को चलाने की अनुमति देता है

क्या आपने यही कोशिश की है। अन्यथा हमें उत्पादन और देव सर्वर संस्करणों के बारे में अधिक जानकारी की आवश्यकता है


मुझे खेद है, लेकिन मैंने आपका मतलब नहीं समझा। यह एक 32 बिट सर्वर है। मैंने अधिक जानकारी जोड़ने के लिए अपनी पोस्ट अपडेट की है।
मिथुन_दा

आह ... क्या वे अलग-अलग app_pools में हैं?
मार्ककेग्रीनवे

हां, मेरी प्रत्येक साइट के अपने स्वयं के ऐप पूल हैं।
मिथुन_दा १४

0

मेरे पास थोड़ा अलग मुद्दा है, सर्वर 2012 पर किसी तरह मैं asp.net 4.5 को सक्षम करना भूल गया, इसलिए यदि आपके पास यह समस्या है, तो इसे सक्षम करने के लिए दोहरी जांच करें।


0

मैं Azure और ASP.NET 4.5, IIS 8 पर Windows Server 2012 R2 चला रहा हूं

मैंने प्रोग्राम और फीचर्स में सभी ASP.NET आइटम को अनइंस्टॉल करके इस समस्या को हल किया, फिर Add रोल्स और फीचर्स का उपयोग करके सर्वर मैनेजर के साथ ASP.NET को इस तरह से रीइनस्टॉल किया: रोल-बेस्ड या फीचर-बेस्ड इंस्टॉलेशन, मेरे सर्वर को चुना, और फिर चयन के लिए सर्वर रोल ने वेब सर्वर (IIS) / वेब सर्वर / एप्लिकेशन डेवलपमेंट को चुना, फिर ASP.NET 4.5 को क्लिक किया, और फिर से इंस्टॉल होने की पुष्टि की और फिर ASP.NET 4.5 को फिर से इंस्टॉल किया।

मेरी पिछली खोजों ने मुझे यह विश्वास करने के लिए प्रेरित किया कि समस्या वास्तव में ASP.NET के साथ पंजीकरण समस्या से उपजी है। ASP.NET के पुराने संस्करणों के साथ, वास्तव में एक उपयोगिता है जिसे आप ASP.NET को फिर से इंस्टॉल किए बिना रजिस्टर करने के लिए चला सकते हैं, लेकिन ऐसा लगता नहीं है कि यह अब तक उपलब्ध है।


0

मैं दृश्य स्टूडियो खोलने, संदर्भों का विस्तार करने और संपत्ति "कॉपी लोकल" को "ट्रू" में बदलने की समस्या को हल करता हूं।

मुझे लगता है कि यह मेरे नए संस्करण के Dll के साथ पुराने संस्करण के dll की तुलना करता है (जो काम नहीं कर रहा था)


0

मेरे मामले में, मेरे आवेदन का डिफ़ॉल्ट पृष्ठ index.html था जो कि डिफ़ॉल्ट दस्तावेज़ विकल्पों से गायब था। इसे जोड़ने से 403.14 निषिद्ध त्रुटि हुई।


0

मेरे मामले में यह मुद्दा कस्टम एक्शनफिल्टर एट्रिब्यूट के कारण था जो एक प्रकार का वैश्विक फ़िल्टर विशेषता था। इस विशेषता ने ऑटोफाक के माध्यम से एक सेवा को तत्काल बदल दिया, लेकिन निर्माणकर्ता में दुर्घटनाग्रस्त हो गई:

public ActionFilterAttribute()
{
    _service = ContainerManager.Resolve<IService>();
}

public class Service: IService
{ 
    public Service()
    {
        throw new Exception('Oops!');
    }
}

0

मेरे मामले में न तो विंडोज फीचर्स और न ही aspnet_regiis -iकाम नहीं किया। इंटरनेट में खोदने के घंटों के बाद, मैंने अपना समाधान बनाया:

  1. मॉड्यूल में IIS प्रबंधक में मैं स्थानीय रूप से UrlRoutingModule-4.0 नोड में परिवर्तन कर चुका हूं:

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

  2. Web.config में मैंने इस मंच से कुछ युक्तियों का मिश्रण चिपकाया:

    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true">
            <remove name="UrlRoutingModule-4.0"></remove>
            <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition=""></add>
        </modules>
    </system.webServer>
    

आशा करता हूँ की ये काम करेगा

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