PDA

View Full Version : سوال: نحوه ایجاد یک httphandler ساده



dontspeak
سه شنبه 03 آبان 1390, 12:08 عصر
سلام به همه دوستان
دیروز توی اینجا (http://barnamenevis.org/showthread.php?310441-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-obout-Imagezoom-%D8%AF%D8%B1-querystring) یه سوال پرسیدم در مورد imagezoom و کوئری استرینگ که کسی جواب نداد. البته حق هم میدم چون چیزیه که هر کسی استفاده نمی کنه. برای همین خودمو دیروز تاحالا در گیر این موضوع کردم. خلاصه کلام اینه که درگیر httphandler هستم و درموردش کلی سرچ کردم ولی هیچی از مثالهای اون نفهمیدم. میشه لطف کنید یک مثال خیلی ابتدایی و ساده از اون بزنید تا من متوجه جریان بشم؟
مشکلمو در مورد کنترل imagezoom خیلی ساده اینجا بیان می کنم تا دوستان دیگه با توجه به دانششون کمک کنند.
این کنترل در حالت عادی خیلی خوب کار می کنه و بدون مشکله ولی وقتی صفحه بصورت کوئری استرینگ فراخونی میشه با مشکل مواجه میشه. توی http://www.obout.com/imagezoom/KnowledgeBase.aspx?id=906 پست دقیقا سوال من پرسیده شده و جواب این بوده که باید از مد httphandler استفاده بشه. خوب وقتی به صفحه http://obout.com/ImageZoom/tutorial_imagezoom_rendering_method.aspx میریم اونجا میگه که سه تا راه واسه استفاده از مد httphandler هست. یکی :
Add a new ashx file with name "ImageZoomHandler.ashx" to project, inherit it from "OboutInc.ImageZoom.Handlers.ImageZoomHandler"
که داره میگه یه فایل ImageZoomHandler.ashx به پروژه خودتون اضافه کنید و inherit اونو رو بزارید OboutInc.ImageZoom.Handlers.ImageZoomHandler
که این کار ساده ترین روشه. من اینو به صفحه default.aspx توی تگ تعریف صفحه بجای Inherits="_Default" اضافه کردم ولی وقتی اجرا می کنم به ارور بر می خورم. سوالی که پیش میاد آیا باید _Default که توی این کده:

public partial class _Default : System.Web.UI.Page
باید با مقدار OboutInc.ImageZoom.Handlers.ImageZoomHandler هم جایگزین بشه؟ بنظر شما مشکل در کجاست؟
راه دومم بازم مشکلش همین قسمت inherit هست و اما راه سوم که میگه:
Set up the Web.config file of your ASP.NET Web Application so it can recognize the new HTTP Handler.

<system.web>
...
<httpHandlers>
<add verb="*"*" path="*"ImageZoomHandler.ashx" type="*"OboutInc.ImageZoom.Handlers.ImageZoomHandler, obout_ImageZoom_NET" />
</httpHandlers>
...
</system.web>که وقتی یه همچین چیزیو توی وب کانفیگ وارد می کنم ارور میده. کلا یه همچین سبکی براش قابل فهم نیست. مثلا به "*"*" گیر میده. اصلا نمی دونم چه چیزی رو بعنوان یک داده صحیح اینجا وارد کنم.سر یکی از پروژه هام گیر این کنترلم و از دوستانی که با httphandler آشنایی دارن می خوام که کمکم کنند.
شایدم من بد ترجمه می کنم ولی چیزی که من فهمیدم اینه.
شاد و پیروز باشید

hjran abdpor
سه شنبه 03 آبان 1390, 16:58 عصر
با سلام.
دیدم سوالتون یکم تازه و جدید است خوشم اومد.

دوست عزیز httphandler یه سری روریداد در سطح پایین است که توسط iis ویا .... صورت میگیرد این یه مثال ساده توسط شرکت میکروسافت است به نظرم برای شروع خوبه .
دوستان مدیر در این مورد زیاد توضیح دادن یه سرچی بزن تو سایت.
با سپاس

http://support.microsoft.com/kb/308001

dontspeak
چهارشنبه 04 آبان 1390, 11:04 صبح
با سلام.
دیدم سوالتون یکم تازه و جدید است خوشم اومد.

دوست عزیز httphandler یه سری روریداد در سطح پایین است که توسط iis ویا .... صورت میگیرد این یه مثال ساده توسط شرکت میکروسافت است به نظرم برای شروع خوبه .
دوستان مدیر در این مورد زیاد توضیح دادن یه سرچی بزن تو سایت.
با سپاس

http://support.microsoft.com/kb/308001
سرچ کردم ولی هیچ کدوم یه مثال ساده رو توضیح نداده بودند. از شما هم ممنونم. اما دیروز جواب سوالمو پیدا کردم.
ج: باید رندر imagezoom رو از حالت دیفالت به حالت httphandler تغییر بدیم و بعدم توی وب کانفیگ این کدو اضافه کنیم:
<httpHandlers>
<add verb="*" path="ImageZoomHandler.ashx" type="OboutInc.ImageZoom.Handlers.ImageZoomHandler, obout_ImageZoom_NET" />
</httpHandlers>
بهمین سادگی. نمی دونم چرا شرکت obout اینقدر سر این موضوع بد کد نوشته؟!!!
شاد و پیروز باشید