PDA

View Full Version : تفاوت فایلهای Ashx با هندلر های تعریف شده



Ahoora_Mazda
شنبه 19 بهمن 1387, 23:47 عصر
درود اهورا مزدا بر شما

لطفا تفاوت ها ، محاسن و معایب استفاده از هندلر های پیش فرض دات نت (ashx) و هندلرهایی که خودمان ایجاد میکنیم (Implement IHttpHandler Interface) را بیان کنید :لبخندساده:

mehdi.mousavi
یک شنبه 20 بهمن 1387, 10:28 صبح
درود اهورا مزدا بر شما لطفا تفاوت ها ، محاسن و معایب استفاده از هندلر های پیش فرض دات نت (ashx) و هندلرهایی که خودمان ایجاد میکنیم (Implement IHttpHandler Interface) را بیان کنید :لبخندساده:

سلام.
برای اینکه یک HTTP Handler رو شما Register کنید، باید در فایل web.config یا machine.config تعاریفی انجام بدید (اضافه کردن handler در بخش handlers در فایلهای مزبور). از طرف دیگه، در IIS 5.0 و 6.0 Custom Handler شما (که یک Extension ای براش در نظر میگیرد) توسط IIS شناخته شده نیست و IIS فقط دنبال نام و extension اون Custom Http Handler شما در Directory مربوطه میگرده. اگر باشه، که محتویات فایل به شما بر میگرده. اگر نباشه، IIS پیام خطا بر میگردونه.

بعنوان مثال، اگر فرض کنیم شما اسم Handler خودتون رو my.whatever گذاشته باشید، چون IIS هیچ چیزی در مورد دنباله whatever نمیدونه، فقط میره دنبال فایلی تحت عنوان my.whatever میگرده و اگر وجود داشته باشه محتوای فایل رو بر میگردونه. برای اینکه این مشکل رو حل کنیم باید به IIS بگیم که کلیه درخواستهایی که به دنباله whatever ختم میشن رو به ASP.NET بفرسته...

اگر از IIS 7.0 استفاده میکنید، که خوب دیگه مشکل ثبت در IIS رو ندارید، اما هنوز باید تو فایل web.config بخش مربوطه رو اضافه کنید.

اما اگر از ashx ها استفاده کنید، دیگه این مشکلات وجود نداره، چون این کارها قبلا انجام شده. شما از هر روشی که مایلید میتونید استفاده کنید، اما معمولا از ashx ها در شرایط ساده استفاده میکنن و جاهاییکه انعطاف پذیری زیاد مهم نیست. ضمن اینکه شما یه Custom Http Handler رو میتونید در چند تا Web Application استفاده کنید اما در مورد ashx ها مجبورید تا Handler مربوطه رو در چند تا Virtual Directory کپی کنید.

موفق باشید.