لماذا يظهر خطا 404 في المواقع التي تستخدم asp.net routing

إن  asp.net routing مفهوم جديد في الدوت نت 4 ، رغم وجود بدايات له في الإصدار 3.5.1 ،  وعند العمل على الخادم المحلي localhost ستعمل معاك هذه التقنية بدون أدنى مشاكل ، ولكن عند الرفع على الاستضافة ، ستجد ظهور مشكلة
404 – File or directory not found.
واجهتني هذه المشكلة في كل مرة أرفع مواقعي ، وقررت أن أضع الحل حتى لا يتغلب به إخوة مرة أخرى ، لانني في كل مرة ، كنت أفتح ملف الإعدادات القديم Web.Config  وأنسخ ما وضعته مرة أخرى
الحل يكمن في التأكد من أن HTTP Redirection ، منصبة على خادم الاستضافة Hosting Server ، وهنا أغلبنا لا يملك الوصل إلى الخادم Server ، وإنما لديه لوحة تحكم عادية ، وغالبا ما تكون هذه الميزة مفعلة في الخادم، وإن أكملت باقي الخطوات ولم تنجح ، قم بمراسلة شركة الاستضافة لتفعلها لك

الخطوة الثانية ، يتوجب عليك ن تكون بإضافة هذه الوسوم إلى ملف الإعدادات Web.config  ، كالتالي

       <system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="UrlRoutingModule"/>
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
<handlers>
<add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </handlers>
</system.webServer>

أيضا لا تنسى من وجود المواصفة targetFramework="4.0" في وسم الإعدادات compilation بهذا الشكل

     <compilation targetFramework="4.0" />      

بإذن الله ستعمل معاك الأمور الآن بشكل تمام إذا كانت الشيفرة المكتوبة صحيحة ، أيضا في بعض الأحيان ، كان يتوجب علي أن أغير المزود من asp.net 4.0 classic إلى asp.net 4.0 Integrated pipeline

About the author

خليل سليم

Leave a Comment

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.