سؤال

أنا فقط أتدخل في طرق خدمة الويب RESTful في C# باستخدام ASP.Net 2.0 وقد تمكنت (عبر مكتبة فئة، إشارة إلى ملف dll الذي أنتجه السابق وبعض التعديلات على web.config الخاص بي) من إقناع تنسيق URI مثل ذلك:

http://localhost/DevelopmentProject/testhandler/?input=thisismyinput

والذي عادةً ما يُرجع الإدخال كقطعة من النص مع البادئة التوضيحية "كان إدخالك:""

كان لدي انطباع بأنني أستطيع جعل URI أكثر سلاسة إلى شيء أكثر على غرار:

http://localhost/DevelopmentProject/testhandler/thisismyinput

والحصول على نفس النتيجة ولكن ليس لديك أي فكرة عن كيفية التخلص من "?input=" المزعجة

الإدخال إلى قسم httphandlers في web.config الخاص بي هو (تمت إضافة المسافات حتى يتم عرض الكود):

< إضافة فعل = "*" مسار = "testhandler/*" نوع = "HandlerLib.testhandler، HandlerLib"/ >

أقوم بتشغيل IIS 5.1 على الجهاز المحلي، فهل سيؤدي ذلك إلى حدوث مشكلة؟

في الأساس أين أخطئ؟

شكرًا.

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

المحلول 3

لقد خدعت نوعا ما.

يحاول:

مقالتي حول كيفية التغلب على ذلك

نصائح أخرى

أحد الحلول هو استخدام UrlRewriting لإعادة كتابة عنوان URL إلى ما تحتاجه.

أنا أستعمل http://urlrewriter.net/ للقيام بكل ما عندي من إعادة الكتابة، ويمكنك إعداد شيء مثل هذا في السيناريو الخاص بك

<rewriter>
   <rewrite 
     url="DevelopmentProject/testhandler/([\w]+)" 
     to="DevelopmentProject/testhandler/?input=$1" />
</rewriter>

سيظل هذا "http://localhost/DevelopmentProject/testhandler/thisismyinput" في شريط عنوان المتصفح الخاص بك، ولكن قم بالمعالجة كـ "http://localhost/DevelopmentProject/testhandler/?input=thisismyinput"

يمكنك تنفيذ إعادة كتابة عنوان URL، باستخدام شيء من هذا القبيل URLRewriter.netسيتيح لك ذلك استخدام بناء الجملة الذي ذكرته.

قم بتغيير التكوين الخاص بك من:<add verb = "" path = "testHandler/" type = "handlerlib.testhandler ، handlerlib"/> to:< إضافة فعل = "" مسار = "testhandler/*" نوع = "HandlerLib.testhandler، HandlerLib"/ >

تحقق من قيمة الطلب http://localhost/DevelopmentProject/testhandler/thisismyinput.

إذا لم يتم ذلك، فتأكد من أن IIS 5.1 يقوم بتوجيه كافة الطلبات إلى aspnet_isapi.dll.(على الرغم من أنه يبدو أنه كذلك بالفعل) هذا هو زر "التكوين..." > علامة التبويب "تعيينات التطبيقات" في الدليل الظاهري الخاص بك في IIS.

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