برای فراخوانی سرویس های وب از طریق اسکریپت می بایست پیکربندی لازم را
به کمک فایل web.config انجام داد . بدین منظور لازم است
ScriptHandlerFactory HTTP handler را از طریق فایل web.config
، ریجستر کرد تا قادر به پردازش درخواست هائی باشد که از سمت سرویس گیرنده و به کمک
اسکریپت ها قصد استفاده از سرویس های وب را دارند. در مواردی که فراخوانی یک سرویس
وب توسط ASP.NET Ajax صورت نمی پذیرد ، درخواست مربوطه
به هندلر پیش فرض ارجاع داده می شود.
کد زیر ، یک نمونه فایل web.config به همراه
handler مربوطه را نشان می دهد .




<system.web>
<httpHandlers>
<remove verb=”*” path=”*.asmx”/>
<add verb=”*” path=”*.asmx”
type=”System.Web.Script.Services.ScriptHandlerFa ctory” validate=”false”/>
</httpHandlers>
<system.web>


توجه داشته باشید در زمان ایجاد یک وب سایت مبتنی بر
Ajax در ویژوال استودیو نسخه های ۲۰۰۵ و یا ۲۰۰۸
، تنظیمات
فوق بطور اتوماتیک در فایل web.config
اعمال خواهد شد .
پس از اعمال تغییرات فوق ،
برای فعال کردن
قابلیت فراخوانی یک سرویس وب از طریق اسکریپت در یک صفحه ASP.NET
،
مراحل زیر را می بایست انجام داد :



  • مرحله اول : اضافه کردن کنترل ScriptManager بر روی صفحه
  • مرحله دوم :
    اضافه کردن یک مرجع به سرویس وب توسط عنصر asp:ServiceReference و تنظیم خصلت
    path آن به گونه ای که به سرویس وب اشاره نماید . شی
    ServiceReference به ASP.NET Ajax اعلام می نماید
    که یک کلاس پراکسی جاوا اسکریپت را برای فراخوانی سرویس وب مورد نظر توسط اسکریپت ،
    تولید نماید .

کد زیر ، نحوه فراخوانی یک سرویس وب با نام
Test.asmx توسط اسکریپت را نشان می دهد .



<asp:ScriptManager runat=”server”
ID=”scriptManager”>
<Services>
<asp:ServiceReference path=”~/WebServices/Test.asmx”
/>
</Services>
</asp:ScriptManager>


در زمان تفسیر صفحه ای که شامل عنصر
<asp:ScriptManager> می باشد ، یک کلاس پراکسی جاوا
اسکریپت برای سرویس وب Test.asmx ایجاد می
گردد . کلاس پراکسی ، دارای متدهای مرتبط با هر یک از متدهای موجود در سرویس وب
Test.asmx می باشد . صفحه همچنین شامل کلاس های پراکسی جاوا
اسکریپت مرتبط با نوع های داده سرویس دهنده است که به عنوان پارامتر ورودی و
یا مقادیر برگردانده شده
توسط متدهای سرویس وب
مورد استفاده قرار می گیرد . بدین ترتیب ، اسکریپت قادر به مقداردهی اولیه
پارامترها و برگرداندن مقادیر خواهد بود .
پس از این مقدمه نسبتا” طولانی و شاید هم خسته کننده ! ولی ضروری ،
اجازه دهید در ادامه به منظور آشنائی با قابلیت های فریمورک
ASP.NET Ajax در سمت سرویس گیرنده ، یک نمونه مثال کاربردی را با یکدیگر
دنبال نمائیم .