لماذا تعطل رسم خرائط بطاقة IIS البرية مكالمات AJAX الخاصة بي؟

StackOverflow https://stackoverflow.com/questions/1271852

سؤال

أحاول استخدام JQUERY لجعل بعض المكالمات AJAX، ولكن لأنني تعاني من رسم خرائط للبطاقة البرية (إلى .NET) في IIS 6 قيد التشغيل، لا يبدو أنه يعمل. تعطيل الخرائط يجعل كل شيء يعمل بطريقة سحرية.

لقد وضعت سمة طريقة الويب على الأساليب في كل من صفحة .aspx وخدمة الويب .ASMX، ولكن لا يعمل. فيما يلي عنوان URL العينة الذي أستخدمه للحصول على مكالمات AJAX:

localhost/UserChecker.aspx/CheckIfUserEmailsExists

localhost/UserChecker.asmx/CheckIfUserEmailsExists

أنا الرقم يجب أن يكون هناك شيء مع طريقة تفسير .NET على عنوان URL لكنني غير متأكد تماما من السبب. الأهم من ذلك، لست متأكدا من كيفية إصلاحه، بخلاف تعطيل رسم خرائط البطاقة البرية! هل هناك أي طريقة أخرى؟؟؟

تحديث

يعمل CMS الذي أستخدمه (Kentico) بعض توجيه URL، ولكن حتى لو كنت تخطي التوجيه في رمز Global.asax.cs، ما زلت أحصل على 404.
شكرا لك مقدما!

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

المحلول

مع تعيين أحرف البدل على IIS سيقوم بتشغيل الطلب الأولي عبر معالج WildCard أولا. سيتم القيام بذلك قبل إعادة كتابة URL (أو توجيه URL) بواسطة CMS.

أعتقد أن هذا هو السبب في الحصول على 404.

يمكنك أيضا محاولة تعطيل خانة الاختيار "التحقق من الملفات" على رسم خرائط البدل لتلبية السيناريو عند إعادة كتابة عنوان URL الفعلي لاحقا إلى شيء آخر.

نصائح أخرى

هذه ليست إجابة كاملة ولكن آمل أن أشاركك في اتجاه حل.

هل حاولت الوصول إلى عنوان URL مباشرة في متصفح واستخدام بعض نقاط التوقف في وضع جيد لتتبع المشكلة؟

إذا كنت تحصل على 404s، فغالبا ما يبدو مثل قواعدك للتوجيه لا يعمل.

سأقوم بتحديث هذا إذا كنت تستطيع إعطاء مزيد من المعلومات حول السلوك الذي تراه

تحديث

أعتقد أن ما قد يحدث هو:

أنت تقدم رسم خرائط منفصلة لملفاتك مع ملحقات (في هذه الحالات .aspx و .asmx):

localhost / ererchecker.aspx / Checkifuseremailsexists

localhost / ererchecker.asmx / Checkifuseremailsexists

يتم استخدام هذه التعيينات عند إيقاف تشغيل تعيينات البطاقات البرية، ويتم التعامل مع "/ Checkifuseremailsexists المستخدمة أو تجاهلها. عند تشغيل تعيينات البدل، فإن توجيهك لا يبلغ تطبيقك كيفية "الطريق" بشكل صحيح.

إذا قمت بإزالة الملحقات (مع تشغيل تعيينات البدل قيد التشغيل) هل يعمل العمل التالي؟

localhost / ererchecker / checkifuseremailsexists

أضف عناوين URL المناسبة إلى قائمة الاستبعاد: استخدم إعداد "عناوين URL المستبعدة" في علامة التبويب "إعدادات الموقع". فيوثائق المساعدة الأساسية)

أقترح التحقق من عنوان URL خارج إطار عمل CMS الخاص بك؛ يجب أن تكون المشكلة مع توجيه URL. لا tsure كيف كان يعمل دون تعيين البطاقة البرية.

أسئلة لفهم: 1. هل لديك CMS الخاص بك قيد التشغيل عند محاولة دون تعيين بطاقة البرية؟ 2. كيف يتفاعل نظام CMS هذا مع IIS؛ IASPI DLL؟ أو معالجات HTTP / الوحدات النمطية؟

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