asp.net-mvc - forbidden - the web server is configured to not list the contents of this directory. mvc




خطأ المتشعب 403.14-ممنوع تم تكوين خادم الويب لعدم سرد المحتويات (12)

لقد قمت بتنزيل تطبيق MVC Music Store ASP.NET MVC في الموقع C: \ Users \ DEVESH \ Desktop \ Projects \ MvcMusicStore-v3.0 \ MvcMusicStore-Completed \ MvcMusicStore وأضفت الموقع على IIS في نفس الموقع. لقد قمت أيضًا بمنح الإذن لـ IIS_IUSRS ، ولكن عندما أقوم بتشغيل localhost فإنني أتلقى الخطأ:

خطأ المتشعب 403.14 - ممنوع تم تكوين خادم الويب لعدم سرد محتويات هذا الدليل.

لقد googled ذلك ، ولكن غير قادر على إصلاح. يمكن لأحد أن يقول لي أين أفعل الخطأ؟


إذا كان المشروع هو مشروع ASP.net MVC سيكون عن التوجيه. في حالتي قمت بتغيير قيم التوجيه الافتراضية:

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

لقد غيرت الكود دون قصد إلى:

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

هذا أنا فقط غيرت "معرف" إلى "JobId" والمسار الافتراضي لا يمكن العثور عليها.


استخدام IUSR permissions على مجلد إذا لم يكن تحت inetpub / wwwroot سيكون الحل بالنسبة للبعض.


في حالتي ASP.NET غير مسجلة على الخادم. حاول تنفيذ ذلك في موجه الأوامر:

ويندوز 32 بت

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir

ويندوز 64bit

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir 

في حالتي ، اضطررت إلى تعطيل "استبعاد الملفات من مجلد App_Data" في ملف التعريف الخاص بنشر مجلد App_Data مع وثائق XML الخاصة بي (XmlDocument.xml). هذا تخلص من 403.14.


في حالتي لم يتم إنشاء ملف index.aspx بشكل افتراضي وبعد إضافة نموذج ويب آخر لم أقم بتعيين النموذج كصفحة بداية ... بعد تعيين الصفحة كصفحة البداية ، يتم حل مشكلتي. لذلك انقر بزر الماوس الأيمن فوق نموذج ويب وقم بتعيين النموذج كصفحة البداية :)


في حالتي: 1. في إدارة IIS ، في الشجرة اليسرى ، اليسار انقر فوق اسم الكمبيوتر ، في مربع الحوار الصحيح انقر فوق قيود ISAPI و CGT ، في مربع الحوار المفتوح ، حدد ASP.NET v4.0.30319 وحدد تمكين. هناك نوعان من ASP.Net v4.0 ، واحد ل 32 بت ، وآخر 64 بت. اختيار اعتمادا على بت الخاص بك نظام التشغيل. 2. في الشجرة اليسرى حدد تجمع التطبيقات ، في مربع الحوار الأيمن ، حدد مجموعة التطبيقات التي تستخدم موقع الويب الخاص بك. انقر نقرًا مزدوجًا فوق هذا التجمع ، في مربع الحوار المفتوح ، حدد عنصر framke .net إطار net. v.4.0.30319. والأنابيب .. اختيار حدد التكامل. ربما هناك بعض الترجمة الخطأ أعلاه لأن نظام التشغيل ليس إصدار اللغة الإنجليزية.


كنت تستخدم تطبيق ASP.NET 4.5 MVC على IIS 7. كان الإصلاح الخاص بي لتعيين runallmanagedmodule إلى true.

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

أو إذا كان لديك وحدات نمطية أخرى ، فقد ترغب في إضافتها داخل علامة الوحدة النمطية.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
             <add name="ErrorLogWeb" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
             ...
    </modules>
</system.webServer>

نظرة عامة على وحدات IIS: موقع Microsoft IIS الرسمي


لقد حل هذه المشكلة عن طريق تصحيح خطأ في ترتيب ملف Global.asax الخاص بي. كنت قد نسخ عبر الملفات من مشروع آخر وفشلت في تضمين Global.asax.cs داخل ملف Global.asax (كل من الملفات الموجودة سابقا على نفس المستوى).


لقد واجهت نفسي مماثلة من قبل لسببين. 1. لم يتم تثبيت MVC. 2. لا يتم تسجيل وحدة توجيه عنوان url (يختلف ذلك حسب الجهاز في مكان العمل لسبب لا أستطيع شرحه بالكامل - لا يتم تسجيله دائمًا على مستوى النظام) ، حاول تسجيله في تطبيق web.config:

<system.web> 
      ... 
      <httpModules> 
         ... 
         <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      </httpModules>
   </system.web>

تحرير: لقد نسيت إضافة موقع iis 7+:

<system.webServer> 

      <modules> 
         ... 
         <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      </modules>
</system.webServer>

يحدث هذا الخطأ عندما يتعذر بدء تشغيل التطبيق.
لذلك يمكن أن يكون السبب أي شيء يمنع بدء تشغيل التطبيق الخاص بك.

  • سلسلة اتصال خاطئة
  • خطأ IIS دليل الأذونات
  • تم طرح استثناء في الدالة Application_Start ()
  • خطأ في تهيئة حاوية IOC
  • أخطاء تسجيل IIS ASP.NET
  • DLL مفقود في مجلد سلة الخاص بك
  • إلخ...

تحقق أيضا هذا:

تحدث هذه المشكلة نظرًا لعدم توفر ميزة "استعراض الدليل" لموقع الويب ، ولم يتم تكوين المستند الافتراضي. لحل هذه المشكلة ، استخدم إحدى الطرق التالية:

  • الأسلوب 1: تمكين ميزة "استعراض الدليل" في IIS (مستحسن)
  • الطريقة 2: إضافة مستند افتراضي الطريقة الثالثة: تمكين "الدليل"
  • الطريقة الثالثة: تمكين ميزة "استعراض الدليل" في IIS Express

LINK: support.microsoft.com/en-us/kb/942062


لقد عثرت على هذا الخطأ لأنني أواجه نسخة .NET خاطئة (v2.0 بدلاً من الإصدار v4.0) التي تم تكوينها على تجمع تطبيقات موقع الويب. لقد أصلحت هذه الطريقة على Windows Server 2008 R2 و IIS 7. أنا متأكد من أن التعليمات تنطبق على Windows Server 2012 و IIS 8 أيضًا:

  • اضغط على مفاتيح Windows + R لفتح مربع الحوار "تشغيل" ، اكتب inetmgr ثم انقر فوق "موافق". هذا يفتح إدارة IIS.
  • في treeview الأيسر ، حدد موقع عقدة المواقع وابحث عن عقدة " موقع ويب الافتراضي" تحته (أو اسم الموقع حيث تظهر رسالة الخطأ).
  • انقر بزر الماوس الأيمن على العقدة وحدد إدارة موقع الويب -> الإعدادات المتقدمة .... لاحظ اسم قيمة تجمع التطبيقات . أغلق مربع الحوار هذا.
  • في treeview إلى اليسار ، حدد موقع وحدد تجمعات التطبيقات عقدة.
  • في القائمة إلى اليمين ، حدد موقع تجمع التطبيقات بالاسم نفسه الذي سجلته في إعدادات موقع ويب. انقر بزر الماوس الأيمن عليه واختر الإعدادات المتقدمة ...
  • تأكد من أن قيمة إصدار .NET Framework هي الإصدار v4.0 . انقر فوق موافق .

لا ينطبق هذا إذا كنت تقوم بتشغيل موقع قديم بالفعل يجب أن يكون .NET v2.0 ، بالطبع :)





iis