سؤال

ما هي أفضل طريقة للحصول على استضافة تطبيق ASP.NET MVC للعمل على IIS 5 (6 أو 7).عندما حاولت نشر تطبيق ASP.NET MVC الخاص بي، يبدو أن كل ما حصلت عليه هو خطأ 404.لقد أجريت القليل من البحث في Google ووجدت بعض الحلول، ولكن لا يبدو أي منهما أنيقًا للغاية، وأخشى أن تصبح غير قابلة للاستخدام بمجرد أن أستخدم بيئة استضافة مشتركة للتطبيق.

الحل 1

  1. انقر بزر الماوس الأيمن فوق الدليل الظاهري للتطبيق الخاص بك على inetmgr.exe.
  2. خصائص->علامة تبويب الدليل الظاهري->التكوين.
  3. أضف ملحق رسم الخرائط الجديد.يجب أن يكون الامتداد.*، والذي سيتم تعيينه إلى C: windows microsoft.net framework v2.0.50727 aspnet_isapi.dll ، أو الموقع المناسب على جهاز الكمبيوتر الخاص بك (يمكنك ببساطة نسخ هذا من التعيين من أجل .aspx ملفات).عند التعيين ، قم بإلغاء تحديد "تحقق من وجود الملف".
  4. 3 X حسنًا، وأنت على ما يرام.
  5. إذا أردت، يمكنك تطبيق هذا الإعداد على كافة مواقع الويب الخاصة بك.في Step1 ، انقر فوق عقدة "موقع الويب الافتراضي" بدلاً من الدليل الافتراضي الخاص بك ، وفي الخطوة 2 انتقل إلى علامة التبويب "Home Directory".والباقي هو نفسه.

يبدو من الصعب بعض الشيء توجيه كل شيء عبر ASP.NET.

الحلول 2

قم بتحرير توجيه MVC ليحتوي على .mvc في عنوان URL، ثم اتبع الخطوات الواردة في الحل 1 بناءً على هذا الملحق. يحرر:تم فقد رابط الصورة الأصلية، ولكن هنا من ذاكرة التخزين المؤقت لـ Google:

alt text

هل كانت مفيدة؟

المحلول

الإجابه هي هنا

إذا لم يتم تسجيل تمديد *mvc في الاستضافة ، فسوف يعطي 404 استثناء.تتمثل طريقة العمل في استضافة تطبيقات MVC في هذه الحالة إلى تعديل Global.asax Roughing Caluse بالطريقة التالية.

ROTES.ADD (ROUTE NEW ("{Controller} .mvc.aspx/{Action}" ، new MvCrouteHandler ()) {defaults = new Routevaluedictionary (new {controller = "yourcontroller"})}) ؛

وبهذه الطريقة ، سينتهي كل طلب وحدة التحكم الخاصة بك في *.mvc.aspx ، الذي يتم التعرف عليه بواسطة استضافةك.وبينما يتم نسخ DLLs MVC في صندوقك المحلي ، لا يلزم القيام بتسوية خاصة لذلك.

نصائح أخرى

أظن في كلتا الحالتين سيتعين عليك القيام بالحل 1.

خذ بعين الاعتبار خط أنابيب طلب HTTP.

  1. يأتي الطلب إلى IIS.
  2. يتحقق IIS من رأس المنفذ/المضيف لمعرفة ما إذا كان لديه موقع ويب تم إعداده لالتقاط الطلبات الخاصة برأس/منفذ المضيف هذا.
  3. يقوم IIS بالتحقق من ملحق ملف الطلب (.php، .asp، .aspx) ويسلمه إلى ISAPI الذي يمكنه التعامل مع هذا النوع من الطلب.

عند هذه النقطة فقط يبدأ تشغيل ASP.NET (أو وقت تشغيل PHP). إذا لم يكن لدى IIS هذا التعيين، فلن يقوم أبدًا بتسليم الطلب إلى وقت تشغيل ASP.NET ولن يصل الطلب أبدًا إلى التعليمات البرمجية الخاصة بك.لهذا السبب تحتاج إلى تعيين الكرة الأرضية (*) إلى ASP.NET ISAPI.

غالبًا ما تنتهي عناوين URL لإطار عمل ASP.NET MVC بدون امتداد الملف على الإطلاق.إذا كنت تريد أن تتم معالجة هذه الطلبات بواسطة ASP.NET (أو أي وقت تشغيل آخر)، فيجب عليك تعيين جميع الطلبات بغض النظر عن امتداد الملف إلى ISAPI (على سبيل المثال.aspnet_isapi.dll).

ويتم ذلك غالبًا أيضًا لمتعاملي HttpHandlers الذين يحتاجون إلى خدمة الوسائط مثل .jpg و.gif.لكي يتم ضرب المعالج، يجب تعيينه إلى التعليمات البرمجية الخاصة بك على الرغم من أن .jpg ليس امتداد ملف ASP.NET "عاديًا".

هث،
تايلر

يجري:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll -i

سيؤدي هذا إلى إعادة تعيين إعدادات تسجيل IIS لمستخدم aspnet.

إنشاء الدليل الظاهري:1.انقر بزر الماوس الأيمن على الدليل الذي تريد تحويله

  • حدد خصائص
    1. ضمن الدليل، حدد إنشاء.
    2. ضمن التكوين، حدد إضافة.
    3. للإدراج القابل للتنفيذ:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

لإدراج التمديد:.*

  • قم بإلغاء تحديد "التحقق من وجود هذا الملف"

  • ضمن المستندات أضف ملف نقطة الإدخال، على سبيل المثال:Default.htm، وindex.htm، وGlobal.asax

  • ضمن إعدادات الدليل

    1. حدد تحرير...
    2. حدد الوصول المجهول
    3. قم بإلغاء تحديد السماح لـ IIS بالتحكم في كلمة المرور
    4. قم بإلغاء تحديد المصادقة الأساسية
    5. قم بإلغاء تحديد مصادقة Windows المتكاملة
    6. ضمن ASP.NET، تأكد من الإصدار = v4.0.30319

يحيط علما باسم المستخدم أي:IUSR_AVSJ82S

تعيين إذن مشاركة الدليل الفعلي:

  • في مستكشف Windows، انتقل إلى الدليل الفعلي الذي تم تحويله إلى دليل ظاهري.انقر بزر الماوس الأيمن على اسم الدليل
  • حدد الخصائص
  • ضمن علامة تبويب الأمان، حدد إضافة
  • أدخل اسم مستخدم IIS على سبيل المثال:IUSR_AVSJ82S انقر فوق التحقق من الاسم.
  • انقر فوق موافق
  • تعيين أذونات القراءة والكتابة.

FYI: على Server 2003 (تطوير تطبيق كان عليه الاتصال بـ RPS) ، لم يسمح لي بإضافة الامتداد.*، لقد استخدمت الحل البديل يعدل جملة الطريق ، والتي نجحت.

هل حاولت إضافة .aspx إلى نهاية اسم وحدة التحكم؟

لقد نجحت مع سؤال Stack Overflow أين يمكنني الحصول على استضافة ASP.NET MVC؟.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top