آموزش وب سرویس
بسم الله الرحمن الرحیم
آموزش وب سرویس
از آنجایی که مطالبی در خصوص WCF و Web Api را در سایت قرار دادم لازم دیدن تا روش های قبلی را نیز کامل کنم به همین دلیل در اینجا آموزشی قرار دادم تا انشالله با مباحث ابتدایی آشناییت پیدا شود در ضمن این مطلب را بیشتر برای دوستان تیم وب قرار دادم که با معماری سرویس گرا فعالیت می کنند.
Visual Studio همانند ساختن یک Page به شما اجازه می دهد تا یک سرویس که طبیعتا مبتنی بر Asp.Net XML است ایجاد کنید. همچنین شما می توانید از یک وب سرویس که در کامپیوتر شما یا در UDDI که بیرون از سیستم شما قرار دارد استفاده کنید. اگر فرصت شد انشالله مطلبی در خصوص UDDI نیز در سایت قرار خواهم داد. اما در حد مختصر فولدر سرویس که مکانی است که businesses می توانند در آن ثبت و جستجو را می تواند برای وب سرویس انجام دهد گویند و UDDI مخفف Universal Description, Discovery and Integration می باشد یعنی توصیف کلی، اکتشاف و یکپارچگی؛ حالا.
برای این آموزش نیاز به IIS دارید اگر تا کنون از این سرور استفاده نکردید نگران نباشید کافی است آن را از قسمت Add\Remove به صورت کامل فقط فعال کنید.
ساخت یک وب سرویس تحت IIS
برای ایجاد یک وب سرویس مراحل زیر را انجام دهید:
- Visual Web Developer را باز نمایید.
- از منوی File گزینه New Web Site را انتخاب نمایید.
- بر روی گزینه ASP.NET Web Service کلیک نمایید.
- Browse را انتخاب نمایید.
- بر روی Local IIS کلیک نمایید.
- بر روی Default Web Site کلیک نمایید.
- بر روی Create New Web Application کلیک نمایید. Visual Web Developer یک IIS Web application ایجاد می کند.
- این نام را به وب سرویس انتساب دهید TemperatureWebService.
- بر روی گزینه Open کلیک نمایید.
- در قسمت لیست Language زبان #C را انتخاب نمایید.
- Ok را بزنید
- کلاس Service را ببندید.
نکته:
اگر از نسخه های دیگر VS استفاده می کنید مسیر زیر را طی نمایید File->new WebSite
و سپس Net 3.5. و گزینه Asp.Net WebService و در قسمت Web Location گزینه HTTP را انتخاب نمایید و سپس یک وب سایت در IIS اضافه نمایید در صورتی که IIS نصب نیست آن را نصب نمایید.
ساخت یک وب سرویس
شما یک وب سرویس که دما را از Fahrenheit به Celsius و بالعکس تبدیل می کند خواهید ساخت.
مراحل ساخت
- Solution Explorer بر روی نام وب سایت کلیک راست نمایید و گزینه Add New Item را انتخاب نمایید.
- بر روی Web Service کلیک کنید و در قسمت نام، عبارت Convert را تایپ نمایید.
- تیک گزینه Place code in separate file را بزنید و سپس بر روی Add کلیک نمایید.
VS دو فایل را به پروژه اضافه می کند یکی فایل Convert.cs در پوشه App_Code که در این فایل نمونه ای از یک متد وب سوریس نوشته شده است و یک فایل دیگر با نام Convert.asmx که به استناد آن متد وب سرویس را فراخوانی می کند.
ما دو متد برای وب سرویس می نویسیم یک متدی برای تبدیل دمای Fahrenheit به Celsius یک متد برای تبدیل Celsius به Fahrenheit.
ساخت متدها
کد زیر را به کلاس Convert.cs پس از متد Helloworld اضافه نمایید:
[System.Web.Services.WebMethod()]
public double FahrenheitToCelsius(double Fahrenheit)
{
return ((Fahrenheit - 32) * 5) / 9;
}
[System.Web.Services.WebMethod()]
public double CelsiusToFahrenheit(double Celsius)
{
return ((Celsius * 9) / 5) + 32;
}
نکته: صفت [()System.Web.Services.WebMethod] یا <()System.Web.Services.WebMethod> که قبل از نام توابع قرار می گیرد بخشی از تعریف تابع است.
بعد از نوشتن کد آن را ذخیره کنید. حالا می خواهیم وب سوریس را تست نماییم.
تست وب سرویس
بر روی فایل Convert.asmx کلیک کنید و سپس Ctrl+F5 را بزنید. وب سرویس همراه با نمایش یک صفحه که در ان توابع نوشته شده است مورد استفاده قرار می گیرد.
بر روی CelsiusToFahrenheit کلیک نمایید. یک صفحه که درخواست می کند برای پارامترها مقدار تعیین کنید نمایش داده می شود.
در باکس Celsius مقدار 100 را وارد نمایید و سپس بر روی گزینه Invoke کلیک نمایید. در صفحه جدید مقدار به صورت XML نمایش داده می شود، که این صفحه وقتی نمایش داده می شود که متد CelsiusToFahrenheit صدا زده شود. این مقدار 212 می باشد.
صفحه ای که نتیجه را نمایش می دهد ببندید.
حال در صفحه اصلی back بزنید تا لیست تمام متدها را ببینید.
بر روی FahrenheitToCelsius کلیک کنید و با دادن مقدار 212 این متد را تست نمایید که طبیعتا باید به شما عدد 100 را نمایش دهد.
Browser را ببندید.
ساخت وب سرویس به پایان رسید.
استفاده کردن از وب سرویس
حالا که شما یک وب سرویس دارید یک وب سایت می سازید که به وب سرویس متصل می شود که در این وب سایت متد وب سرویس فراخوانی می شود.
مانند بخش قبل یک پروژه وب فقط با نوع وب سایت ایجاد خواهیم کرد
-
Visual Web Developer را باز نمایید.
-
از منوی File گزینه New Web Site را انتخاب نمایید.
-
بر روی گزینه ASP.NET Web Site کلیک نمایید.
-
Browse را انتخاب نمایید.
-
بر روی Local IIS کلیک نمایید.
-
بر روی Default Web Site کلیک نمایید.
-
بر روی Create New Web Application کلیک نمایید. Visual Web Developer یک IIS Web application ایجاد می کند.
-
این نام را به وب سرویس انتساب دهید TemperatureWeb.
-
بر روی گزینه Open کلیک نمایید.
-
در قسمت لیست Language زبان #C را انتخاب نمایید.
-
Ok را بزنید
Visual Web Developer یک وب سایت جدید ایجاد می کند و در این سایت یک صفحه با نام Default.aspx ایجاد می کند.
نکته:
اگر از نسخه های دیگر VS استفاده می کنید مسیر زیر را طی نمایید File->new WebSite
و سپس Net 3.5. و گزینه Asp.Net Web site و در قسمت Web Location گزینه HTTP را انتخاب نمایید و سپس یک وب سایت در IIS اضافه نمایید در صورتی که IIS نصب نیست آن را نصب نمایید.
اضافه کردن Web Service به عنوان یک Component
web service یک کامپوننت است که شما می توانید در برنامه خود به آن رجوع کنید بنابراین برای اینکار یک reference به آن بسازید.
ساخت یک reference به وب سرویس
در Solution Explorer بر روی نام وب سایت کلیک راست نمایید و گزینه Add Web Reference یا Add Service Reference را انتخاب نمایید.
پنجره Add Web Reference یا Add Service Reference مانند تصویر زیر نمایش داده می شود.
بر روی گزینه Advanced کلیک نمایید تا پنجره جدیدی باز شود در پنجره باز شده گزینه Add Web Refrence را که در پایین پنجره قرار دارد انتخاب نمایید تا در نهایت پنجره زیر نمایش داده شود.
در پنجره باز شده در قسمت url آدرس زیر را بنویسید:
http://localhost/TemperatureWebService/Convert.asmx
کیلد enter را بزنید تا آدرس جستجو شود سپس در پنجره که به عنوان نتیجه نمایش داده خواهد شد بر روی یکی از لینک های نمایش داده شده کلیک کنید و بعد مانند مراحل قبل متد را تست کنید.
حال نام WebRefrence را در قسمت web refrence name بنویسید و سپس بر روی گزینه Add refrence کلیک کنید. ویزوال استادیو پس از اضافه کردن این web refrence یک فولدر با نام App_WebReferences در پروژه قرار می دهد که web refrence شما را در آن اضافه می کند.
web refrence حالا به پروژه شما اضافه شده است.
فراخوانی متد های web refrence
صفحه Default.aspx را باز نمایید و کنترل های مشخص شده در زیر را به صفحه اضافه کنید و پرارپتی های تعیین شده برای هر کنترل نیز تنظیم نمایید.
Control | Properties |
---|---|
Textbox |
ID: TemperatureTextbox Text: (empty) |
Button |
ID: ConvertButton Text: Convert |
Label |
ID: FahrenheitLabel Text: (empty) |
Label |
ID: CelsiusLabel Text: (empty) |
بر روی باتن Convert کلیک نمایید و کد زیر را در آن بنویسید:
protected void ConvertButton_Click(object sender, EventArgs e)
{
WebRefrence.Convert wsConvert = new WebRefrence.Convert();
double temperature =
System.Convert.ToDouble(TemperatureTextbox.Text);
FahrenheitLabel.Text = "Fahrenheit To Celsius = " +
wsConvert.FahrenheitToCelsius(temperature).ToString();
CelsiusLabel.Text = "Celsius To Fahrenheit = " +
wsConvert.CelsiusToFahrenheit(temperature).ToString();
}
WebRefrence که در خط اول قید شده نامی است که من به Web Refrence در مرحله اضافه کردن به پروژه داده ام.
CTRL+F5 را بزنید و در باکس عدد 100 را بنویسید و سپس گزینه Convert را بزنید.
Debugging Web Service
برای فعال کردن خطایابی در Web service مراحل زیر را طی نمایید:
-
از منوی File گزینه Open Web Site را انتخاب کنید.
-
بر روی Local IIS کلیک کنید.
-
TemperatureWebService را انتخاب و سپس بر روی Open کلیک کنید
-
از منوی Website بر روی ASP.NET Configuration کلیک کنید تا Web Site Administration Tool باز شود.
-
بر روی تب Application کلیک کنید.
- در زیر مجموعه Debugging and Tracing بر روی Configure debugging and tracing کلیک کنید.
-
تیک گزینه Enable debugging را بزنید.
-
پنجره را ببندید.
Web Site Administration Tool یک فایل Web.config را می سازد و خطایابی و سایر پیکربندی ها را تنظیم می کند.
شما همچنین می توانید در وب سایت خود نیز debugging را فعال کنید برای این کار کافی است مراحل قبل را طی نمایید.
Solution Explorer را Refresh کنید و فایل Web.config را مشاهده کنید.
حالا می توانید بر روی یکی از خط های برنامه یک breakpoint قرار دهید و برنامه را اجرا نمایید.
خودتان بر روی یکی از خطهای برنامه breakpoint قرار دهید و برنامه را تست نمایید.
شخصا علاقه دارم تا بحثهای ابتدایی و پایه ای مربوط به وب سرویس های Asp را در سایت قرار دهم اما بدلیل نداشتن وقت شاید فرصت نشود اما سعی خواهم کرد در بحث های WCF بحث های پایه ای نیز انجام شود.
یا علی
نظرات (۲)
با عرض سلام
ممنون از لطف شما
اگر درست متوجه شده باشم، باید عرض کنم شما می خواهید یک وب سرویس را در یک پروژه MVC فراخوانی کنید. اگر این فرایند را بخواهید انجام دهید هیچ تفاوتی ندارد زیرا شما تنها باید وب سرویس خود را Add و سپس پیاده سازی کنید.
یاعلی
فقط یه مشکل داره اونم نا مرطب بودن مباحث داخلی هست
اگه یه منوی درختی باشه که
وب سرویس
با عرض سلام