0

تفاوت میان url rewrite و routing در asp.net

 
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

تفاوت میان url rewrite و routing در asp.net

در ASP.NET  دو   ماژول برای تغییر آدرسها  وجود دارند :

  • IIS URL Rewriting

  • ASP.NET Routing

IIS URL Rewriting

هنگامی که از طرف یک کلاینت آدرس خاصی از وب سرور تقاضا می شود url rewrite آدرس را آنالیز کرده و به آدرس دیگه ای در همان سرور منتقل می کند این پروسه در مراحل ابتدایی چرخه پاسخگویی به درخواست شروع می شود :(در تصویر زیر این موضوع رو می تونید ببینید )



ASP.NET Routing

کار این کلاس نیز تغییر ومدیریت آدرسهاست ولی همان طور که در شکل ذیل می بینید در چرخه یک درخواست  کلاینت از وب سرور در مراحل پایین تری کار خود را شروع می کند :



تفاوتهای این دو :

URL rewriting    قبل از این که درخواست توسط وب سرور هندل شود آدرسها رو تغییر می دهد بدون این که هیچ اطلاعاتی درباره هندلر مربوطه داشته باشد .و همچنین هندلر اصلی از این که آدرس قبلا تغییر کرده اطلاعی ندارد .

در صورتی که routing با شناخت از هندلری که وظیفه پاسخگویی را بر عهده خاهد داشت هندلر رو که باید پاسخ لازم رو بدهد انتخاب می کند .

به جز این دو تفاوت مفهومی چند اختلاف عملکردی نیز وجود داره :

iis url rewrite  در تمامی انواع وب اپلیکیشنها قابل پیاده سازی است در حالی که routing  مختص دات نت است .
iis url rewrite  چه  app pool استفاده شده شما کلاسیک باشه  یا integrated  براش فرقی نمی کنه اما در routing  چنانچه app pool  شما کلاسیک باشه با توجه به این که در این حالت کلیه مسیرها باید به پسوند ختم شوند با مشکل مواجه خواهیم شد که برای حلش باید باید یا تنظیمات Wildcard map را از طریق IIS انجام دهید یا از hotfixای که در لینک ذیل وجود دارد استفاده کنید تا درخواست هایی که پسوند ندارند نیز به شکلی صحیح توسط Routeها پردازش شوند:

http://support.microsoft.com/kb/980368
لذا در routing ترجیحا باید از
integrated  استفاده شود .
ماژول   the url rewrite   در نسخه فعلی قابل توسعه نیست ولی asp.net routing  کاملا توسعه پذیر و قابلیت سفارشی سازی است .

توصیه مدیریت :    به شدت  routing   رو پیشنهاد می کنم در نسخه  3.5 دات نت  یه خورده مشکلتره ولی در دات نت 4  خیلی راحت قابل پیاده سازی است .


منبع : 

http://stackoverflow.com/questions/90112/iis-url-rewriting-vs-url-routing

چهارشنبه 8 آذر 1391  8:33 AM
تشکرات از این پست
دسترسی سریع به انجمن ها