الحفاظ على مسار إعادة كتابة ISAPI مع ASP.NET TILDE (~)
-
27-09-2019 - |
سؤال
يقوم فريقي بالترقية من ASP.NET 3.5 إلى ASP.NET 4.0. نحن نستخدم حاليًا Helicon isapi rewrite لتعيين خريطة http://localhost/<account-name>/default.aspx
إلى http://localhost/<virtual-directory>/default.aspx?AccountName=<account-name>
أين <account-name>
هو متغير سلسلة الاستعلام و <virtual-directory>
هو دليل افتراضي (بشكل طبيعي).
قبل ترقية tilde (~) http://localhost/<account-name>/...
(وهو ما أريد أن يفعله) وبعد الترقية يحل Tilde إلى http://localhost/<virtual-directory>/...
مما يؤدي إلى خطأ لأن <account-name>
سلسلة الاستعلام مطلوبة.
أرغب في تجنب السير في طريق استبدال كل شيء بالمسارات النسبية لأن هناك العديد من الميزات في نظامنا تستخدم عنوان URL بأكمله بدلاً من المسار النسبي.
لما يستحق ، أستخدم IIS7 في Windows 7 و Visual Studio 2010 مع ASP.NET 4.0 و 64 بت Isapi إعادة كتابة. إذا عدت إلى إصدار ASP.NET 3.5 ، فإنه لا يزال يعمل بشكل جيد (يقودني إلى تصديق لم يتغير شيء في IIS ما لم يكن ضمن مجموعة التطبيقات 4.0 - عندما أقوم بالتبديل بين 3.5 و 4.0 ، لا بد لي من تغيير تجمع التطبيق في IIS).
أيه أفكار؟ شكرا مقدما!
المحلول
IIS 7 لديه دعم إعادة توجيه HTTP لائق. لذلك قد لا تحتاج إلى استخدام مرشح ISAPI بعد الآن
http://technet.microsoft.com/en-us/library/cc732969(ws.10).aspx
طريقة أخرى حول استخدام ISAPI هي استخدام وحدة HTTP Redirect.
http://weblogs.asp.net/fmarguerie/archive/2004/11/18/265719.aspx