.net 4.0 - आईआईएस 7.5 पर एएसपी.नेट एमवीसी




.net-4.0 iis-7.5 (19)

मैं विजुअल स्टूडियो 2010 आरसी का उपयोग कर विंडोज 7 अल्टीमेट (64 बिट) चला रहा हूं। मैंने हाल ही में वीएस चलाने के लिए मेरे सर्वर के बजाय आईआईएस पर अपने ऐप्स को डीबग / डीबग करने का निर्णय लिया है।

हालांकि, हर बार जब मैं एक एमवीसी ऐप चलाने की कोशिश करता हूं, तो मुझे निम्न त्रुटि मिलती है:

HTTP त्रुटि 403.14 - निषिद्ध वेब सर्वर इस निर्देशिका की सामग्री सूचीबद्ध करने के लिए कॉन्फ़िगर किया गया है। विस्तृत

त्रुटि जानकारी

मॉड्यूल निर्देशिकासूची मॉड्यूल

अधिसूचना ExecuteRequestHandler

हैंडलर स्टेटिकफाइल त्रुटि

कोड 0x00000000 अनुरोध किया गया

यूआरएल http: // localhost: 80 / mySite /

शारीरिक पथ सी: \ myProject \ mySite \

लॉगऑन विधि बेनामी लॉगऑन

उपयोगकर्ता बेनामी

मैंने निर्देशिका में एक default.aspx फ़ाइल रखी और मुझे निम्न त्रुटि मिली:

HTTP त्रुटि 500.21 - आंतरिक सर्वर त्रुटि हैंडलर "PageHandlerFactory-Integrated" में मॉड्यूल सूची में एक खराब मॉड्यूल "प्रबंधित पाइपलाइन हैंडलर" है

क्या यह कोई अन्य कदम है जो मैं इस काम को पाने के लिए भूल गया था?

नोट्स: मैंने वीएस 2010 आरसी स्थापित करने के बाद आईआईएस 7.5 स्थापित किया। मैंने विजुअल स्टूडियो 2010 में एमवीसी प्रोजेक्ट की "प्रॉपर्टीज" में "वेब" टैब के तहत अंतर्निहित "वर्चुअल निर्देशिका बनाएं" बटन का उपयोग किया। मैंने यह सुनिश्चित किया कि एप्लिकेशन एएसपी.नेट 4 ऐप पूल का उपयोग कर रहा है।

नीचे आईआईएस की स्थापित विशेषताएं हैं I


32 बिट मोड का उपयोग किए बिना इस समस्या को हल करने के लिए आपको इस प्रोजेक्ट के लिए स्रोत कोड अपडेट करना होगा

public static void RegisterUrlRoutesFromAttributes(RouteCollection routes)
{
    // Enumerate assembly for UrlRoute attributes.
    List<MapRouteParams> routeParams = new List<MapRouteParams>();
    AppDomain.CurrentDomain.GetAssemblies()
        .ToList()
        .ForEach(assembly => routeParams.AddRange(GetRouteParamsFromAttributes(assembly)));

मैंने आईटी क्लाउड कोडप्लेक्स प्रोजेक्ट में चर्चा बोर्ड पर चर्चा के रूप में इस मुद्दे को उठाया है।

http://itcloud.codeplex.com/discussions/262000


अगर आपका ऐप प्रीकंपिल्ड है तो आपके पास होना चाहिए

PrecompiledApp.config

आपके ऐप के मूल फ़ोल्डर में अन्यथा आप HTTP Error 403.14 भी प्राप्त कर सकते हैं।


आप cmd को व्यवस्थापक के रूप में चलाकर इस त्रुटि को हल कर सकते हैं

विंडोज 32 बिट के लिए तस्वीर के समान ही करें

बस आईआईएस पर जाने और साइट को रीफ्रेश करने के बजाय फ्रेमवर्क के बजाय फ्रेमवर्क 64 के रूप में 64 बिट में बदलाव करें
यदि आपको अभी भी कुछ त्रुटि मिली है तो एप्लिकेशन पूल में बदलाव करें


इस मुद्दे के लिए एक और समाधान जोड़ना।

मेरी Global.asax.cs फ़ाइल में मैंने निम्न का उपयोग करके एमवीसी पाइपलाइन द्वारा खपत से पीएचपी फ़ाइलों को अक्षम करने का प्रयास किया था:

routes.IgnoreRoute( "{*php}" );

मैंने पहले इन्हें एक एमवीसी 2 प्रोजेक्ट में किया था और यह ठीक काम करता था, लेकिन मेरे एमवीसी 3 ऐप में ऐसा करने से समस्या ऊपर की गई।


एक और कारण यह है कि किसी को यह त्रुटि क्यों मिल सकती है यदि फ़ाइल Global.asax रूट फ़ोल्डर में नहीं है।


एक और संभावित समाधान, यदि आप अपने ग्लोबल.एक्सएक्स के चारों ओर घूमते हैं, तो सुनिश्चित करें कि मार्कअप सही एमवीसी अनुप्रयोग वर्ग को इंगित करता है। उम्मीद है कि यह भविष्य में किसी को बचाएगा।


जैसा कि प्रतीत होता है उतना अजीब, आईआईएस को पुनर्स्थापित करना मेरे लिए काम किया गया है, निम्न संस्करण .NET संस्करण फ़ोल्डर के अंदर से चलाया गया है:

aspnet_regiis.exe /i

जब मैं पहली बार यह आदेश चलाता हूं, तो मुझे HTTP त्रुटि 403.14 मिलना शुरू हो गया। लेकिन एक बार जब मैंने फिर से आदेश चलाया तो यह समस्या हल हो गई।

ओब्स : मैंने एक और चीज भी आईआईएस को पुनः स्थापित करने से पहले सर्वर प्रबंधन स्क्रीन में सर्वर सुविधाओं से HTTP रीडायरेक्ट को निकालना था। शायद इस समस्या को हल करने में भी इसका असर पड़ा, लेकिन मुझे यकीन नहीं है। इसलिए, यदि आईआईएस को पुनर्स्थापित करना अभी भी काम नहीं करता है, तो कृपया HTTP रीडायरेक्ट को हटाने का प्रयास करें और पुनः प्रयास करें। उम्मीद है कि यह आपके लिए भी काम कर सकता है।


फिर भी ऐसा एक और कारण हो सकता है - आपके RouteConfig.cs या RouteConfig.cs अमान्य हैं।

मेरे मामले में, मेरे पास एक मार्ग परिभाषित किया गया था (घुंघराले ब्रेस के बजाय कोष्ठक नोट करें):

...
routeTemplate: "api/(something}"
...

मुझे एक और समस्या थी जिसने इस मुद्दे को जन्म दिया।

  • मैंने सुनिश्चित किया था कि मेरा ऐप पूल एकीकृत मोड में .NET 4 चला रहा था
  • मैंने aspnet_regiis.exe -i चलाया था
  • मैंने अपने ऐप पूल चलाने वाले खाते के लिए फ़ोल्डर अनुमतियां सही तरीके से सेट की थीं

इनमें से कोई भी काम नहीं किया। यह पता चला कि system.webserver> मॉड्यूल के तहत मेरे web.config में मेरे पास निम्न था:

<remove name="WindowsAuthentication" />

जाहिर है, इसने विंडोज प्रमाणीकरण मॉड्यूल को हटा दिया जो कि किसी भी तरह से किटर से सबकुछ खटखटाता था।

मुझे उम्मीद है कि यह किसी की मदद करेगा, क्योंकि यह मुझे शाम का सबसे अधिक खर्च करता है!



मेरे मामले में एप्लिकेशन पूल प्रिंटर में .NET CRL संस्करण को कोई प्रबंधित कोड पर सेट नहीं किया गया था (क्यों नहीं पता)। इसे .NET CRL संस्करण v4.0.30319 पर सेट करने से समस्या हल हो गई।


मेरे लिए एक एज़ूर सर्वर 2012 आर 2 आईआईएस 8.5 वीएम पर एक एएसपी.नेट एमवीसी 5 ऐप (बिन तैनात एमवीसी 5) के साथ मुझे एक उन्नत सीएमडी प्रॉम्प्ट से निम्नलिखित करना पड़ा, भले ही मेरे पास 4.5 पहले से स्थापित था:

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

स्रोत: http://support.microsoft.com/kb/2736284

मैं निम्नलिखित पावरशेल के साथ सभी आईआईएस सुविधाओं को स्थापित करने के लिए बलपूर्वक बल देता हूं:

import-module servermanager
add-windowsfeature web-server -includeallsubfeature

स्रोत: http://www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2

अब मेरा ऐप काम कर रहा है।


मैं अचानक 404.14 समस्या से मुलाकात की है। अंत में समस्या को प्रकाशित प्रोफाइल सेटिंग्स में "प्रकाशन के दौरान प्रीकंपाइल" अनचेक करके ठीक किया गया था।


मैंने अपना डिफ़ॉल्ट मार्ग एक बिंदु पर बदल दिया:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }

सेवा मेरे:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index" }

जिसने मुझे तुम्हारी गलती दी। किसी ने रूटिंग का उल्लेख किया है क्योंकि शायद मैं हमेशा इस पर रहा होगा।


मैंने एक नियंत्रक (जैसे MvcApp/Test/SomeClasses.cs और MvcApp/Controllers/TestController.cs ) के मार्ग के समान एक नया नामस्थान (और इसलिए फ़ोल्डर) बनाया है। इसके परिणामस्वरूप 403.14 में भी!


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


यह सुनिश्चित करने के लिए एक और बात यह है कि आपके पास web.config में निम्न सेट है:

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

यूआई विंडोज सर्वर के नए संस्करणों में थोड़ा अलग है। यहां आईआईएस पर काम करने के लिए आपको एएसपी.Net को सक्षम करना है


हमारे पास एक एमवीसी एप्लीकेशन एक नए सर्वर पर ले जाया गया था। .NET 4 और MVC 3 स्थापित किया गया था, लेकिन हमें अभी भी "त्रुटि 403.14" मिली है। इस मामले में, इसका मतलब था कि आईआईएस समझ में नहीं आया कि यह एक एमवीसी अनुप्रयोग से निपट रहा था, यह डिफ़ॉल्ट पृष्ठ की तलाश में था।

समाधान सरल था: सर्वर पर HTTP पुनर्निर्देशन स्थापित नहीं किया गया था।

सर्वर प्रबंधक - भूमिकाएं - वेब सर्वर (आईआईएस) - भूमिकाएं सेवाएं - HTTP पुनर्निर्देशन: स्थापित नहीं है। इसे स्थापित किया, समस्या हल हो गई।





iis-7.5