آموزش Ajax بخش دوازدهم

آموزش Ajax بخش دوازدهم

توسط amin8505 | گروه مقاله های آموزشی | 1394/07/18

نظرات 0

 استفاده از وب سرویس دوردست با ASP.Net AJAX

همواره به یاد داشته باشید ScriptManager  نمی تواند یک شی پروکسی سمت کلاینت(client-side proxy) ایجاد کند بطوریکه از وب سرویس دوردست(remote Web Service) استفاده کند.
مقدار داده هایی که امروزه از طریق وب سرویسها قابل دسترسی هستند بسیار شگفت انگیز است. از آب وهوا تا ترجمه ی زبانهای مختلف به صورت وب سرویس در دسترس هستند.
اگر مایلید از یک وب سرویس دوردست دربرنامه ی ASP.NET AJAX تان استفاده کنید,  به یاد آورید که ScriptManager نمی تواند شی Client-Side proxy  را که قادر به استفاده از یک وب سرویس دور دست باشد , را ایجاد نماید. علت این امر فقدان وجود تابعی بدین منظور در ScripManager نیست بلکه به خاطر این است که ( طرح همه ی browser ها)  شی XmlHttpRequest  در همه ی browserها تنها اجازه می دهد که call back هادر domain مشابه از هر صفحه(و به خاطر اینکه آژاکس به پیغام  JSON نیازبیشتری نسبت به پیغام SOAP برای کار در browser ها دارد).این محدودیت اضافه می شود به دلیل خوبی در یک تلاش گیر انداختن فرمهای مختلف بین حملات script کردن سایت.پس اگر بخواهیم از یک وب سرویس دور دست در Application آژاکس استفاده کنیم , چاره چیست؟
اگرچه نمی توان یک وب سرویس دور دست را مستقیما فرا خواند, اما می توانید صفحه ای داشته باشید که یک سرویس محلی را روی سرورتان که وب سرویس دوردست را به منظور دسترسی به داده ها فراخوانی می کند را فرا خواند.
به منظور فراخوانی یک وب سرویس دور دست , ابتدا باید یک شیserver-side proxy ایجاد کنیدواز Add Web Refrence dialog در VS.NET2005 استفاده نمایید.( متناوبا, می توانید از دستور wsdl.exe استفاده نمایید.)یکبار که شی proxy ایجاد شد, باید یک فایل وب سرویس جدید که صفحات asp.net ajax بتواند فراخواند, ایجاد  کنید.ازآنجا که سرویس را با asp.net ajax فرا می خوانید , باید آن را با صفت ScriptService مشخص کنید. 
یکبار که وب سرویس را به وب سایتتان اضافه کردید, یک WebMethod  به آن اضافه کنید که شی roxy را درخواست کند و وب سرویس دور دست را جهت دسترسی به داده ها فراخواند.
وب سرویس محلی دارای صفت  ASP.NET AJAX Web Service است و مانند یک پوشه یا بسته در میان وب سرویس سراسری Weather عمل می کند. این سرویس دوردست در شکل بالا نشان داده شده است , اطلاعات آب و هوایی را برایairport code های مختلف می دهد.
اکنون شما یک وب سرویس محلی دارید , آن را ارجا ع دهید با استفاده از خصوصیت Services متعلق به ScriptManager مانند آنچه در زیر می بینید که یک proxy سمت کلاینت به طور خودکار ایجاد می شود و در صفحه ی ASP.NeT AJAX-enabled جاسازی شده است:

<asp:ScriptManager 
  ID="ScriptManager1" 
  runat="server">
  <Services>
    <asp:ServiceReference 
      Path="~/WeatherService.asmx" 
    />
  </Services>
</asp:ScriptManager>


وقتی صفحه ای لود می شود, ScriptManager به طور خودکار یک کلاس پروکسی سمت کلاینت که برای فراخوانی وب سرویس جهت بازیابی اطلاعات آب و هوا استفاده  می شود را ایجاد می کند.

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

حرف 500 حداکثر