web.routing لجذر الموقع أو الصفحة الرئيسية
-
23-09-2019 - |
سؤال
أقوم ببعض العمل مع الويب. البحث ، باستخدامه للحصول على عناوين URL ودية وراحة لطيفة مثل واجهات إلى موقع يتم تقديمه بشكل أساسي بواسطة ihtphandler واحد. لا توجد مواقع ويب ، يقوم المعالج بإنشاء جميع HTML/JSON ويكتبها كجزء من طلب العملية.
هذا يعمل بشكل جيد لأشياء مثل/المواقع/المحاسبة على سبيل المثال ، لكن لا يمكنني تشغيلها في جذر الموقع ، أي "/".
لقد حاولت تسجيل مسار بسلسلة فارغة ، مع "default.aspx" (وهو ملف ASPX الفارغ الذي أحتفظ به في مجلد الجذر الخاص بي للعب بشكل جيد مع Cassini و IIS). لقد قمت بتعيين RouteExistingFiles على False بشكل صريح ، ولكن مهما كنت أفعل عند الضغط على عنوان URL الجذر ، فإنه لا يزال يفتح الافتراضي. AXPX ، الذي لا يوجد به رمز يرث منه ، ويحتوي على علامة H1 بسيطة لإظهار أنني ضربته.
لا أرغب في تغيير الملف الافتراضي لإعادة توجيه إلى مسار مرغوب فيه ، أريد فقط ما يعادل طريق "افتراضي" يتم تطبيقه عند عدم العثور على طرق أخرى ، على غرار MVC.
للرجوع إليها ، لم يستخدم الإصدار السابق من الموقع Web.Routing ، ولكن تم الإشارة إلى معالج في الويب.
المواصفات: ASP.NET 3.5SP1 ، C#، لا WebForms ، MVC أو OpenRasta. Ihttphandlers القديم البسيط.
المحلول
تم إصلاح مشكلتي الخاصة: المشكلة هي خادم الويب المتكامل أو Cassini أو بعضها. يبدو أنه لا يتم تشغيله بشكل جيد مع التوجيه ، وسيقوم بشكل افتراضي بإرجاع ملف default.aspx أو ، إذا كان مفقودًا ، يُظهر قائمة الدليل.
إن استخدام IIS مع دليل افتراضي يعمل بشكل جيد ، ولكنه مزعج (يحبط مشاركي الكود لأنهم بحاجة إلى إعداد أدلة افتراضية جديدة عندما يفتحون تطبيقي ، ويلوث مثيل IIs الخاص بي. باه. ربما ما سأفعله في الوقت الحالي ، أو قم بإعداد تطبيق جديد يدويًا حتى أتمكن من استخدام مسار مضيف المجال فقط مثل ما سيكون موجودًا في Live.
البديل هو استخدام الإصدار المحدث من كاسيني ، كما شوهد هنا, ، الذي يعمل إذا كان ملف default.aspx مفقودًا ، لكنني لم أحمل كيفية دمجه مع Visual Studio حتى الآن. سيكون موضع تقدير أي مساعدة ، ولكن ليس أولوية كبيرة بالنظر إلى أن لديّ حلول.
نصائح أخرى
أدرك أن هذا منشور قديم حقًا ، لكنني واجهت نفس المشكلة باستخدام VS2012 ، لذلك أقوم بنشر هذا هنا فقط في حالة.
لقد حلت المشكلة عن طريق التثبيت IIS Express وتعيين المشروع لاستخدام IIS Express في Visual Studio. حل المشكلة.