آموزش وب سرویس

آموزش وب سرویس

بسم الله الرحمن الرحیم

آموزش وب سرویس

از آنجایی که مطالبی در خصوص WCF  و Web Api را در سایت قرار دادم لازم دیدن تا روش های قبلی را نیز کامل کنم به همین دلیل در اینجا آموزشی قرار دادم تا انشالله با مباحث ابتدایی آشناییت پیدا شود در ضمن این مطلب را بیشتر برای دوستان تیم وب قرار دادم که با معماری سرویس گرا فعالیت می کنند.

 

Visual Studio همانند ساختن یک Page  به شما اجازه می دهد تا یک سرویس  که طبیعتا مبتنی بر Asp.Net XML است ایجاد کنید. همچنین شما می توانید از یک وب سرویس که در کامپیوتر شما یا در UDDI که بیرون از سیستم شما قرار دارد استفاده کنید. اگر فرصت شد انشالله مطلبی در خصوص UDDI نیز در سایت قرار خواهم داد. اما در حد مختصر فولدر سرویس که مکانی است که businesses می توانند در آن ثبت و جستجو  را می تواند برای وب سرویس  انجام دهد گویند و UDDI مخفف Universal Description, Discovery and Integration   می باشد یعنی توصیف کلی، اکتشاف و یکپارچگی؛ حالا.

 

برای این آموزش نیاز به IIS دارید اگر تا کنون از این سرور استفاده نکردید نگران نباشید کافی است آن را از قسمت Add\Remove  به صورت کامل فقط فعال کنید.

بسم الله الرحمن الرحیم

آموزش وب سرویس

از آنجایی که مطالبی در خصوص 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 نصب نیست آن را نصب نمایید.

WebService

 

WebServiceIIS

ساخت یک وب سرویس

شما یک وب سرویس که دما را از 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 مانند تصویر زیر نمایش داده می شود.

AddServiceRefrence


بر روی گزینه Advanced کلیک نمایید تا پنجره جدیدی باز شود در پنجره باز شده گزینه Add Web Refrence را که در پایین پنجره قرار دارد انتخاب نمایید تا در نهایت پنجره زیر نمایش داده شود.

AddWebRefrence

 

در پنجره باز شده در قسمت 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 بحث های پایه ای نیز انجام شود.

یا علی

 

نظرات

  • Hannah Martinez
    فرهاد
    دو شنبه 11 دی 1278 - 0:00

    مطالبتون عالی هستن 
    فقط یه مشکل داره اونم نا مرطب بودن مباحث داخلی هست

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

    • Judith Bell
      پاسخ
      اسماعیلشیدایی
      دو شنبه 11 دی 1278 - 0:00

      با عرض سلام


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

      موفق باشید

  • Hannah Martinez
    ناهید
    دو شنبه 11 دی 1278 - 0:00

    با سلام و خسته نباشید.و تشکر از سایت خوتون

    میخواستم بدونم از وب سرویس توی پروژه های با EF6 و mvc 5  میشه استفاده کرد یا اینکه حتما باید از WCF  استفاده کنیم 

    • Judith Bell
      پاسخ
      اسماعیلشیدایی
      دو شنبه 11 دی 1278 - 0:00

      با عرض سلام
      ممنون از لطف شما

      اگر درست متوجه شده باشم، باید عرض کنم شما می خواهید یک وب سرویس را در یک پروژه MVC فراخوانی کنید. اگر این فرایند را بخواهید انجام دهید هیچ تفاوتی ندارد زیرا شما تنها باید وب سرویس خود را Add و سپس پیاده سازی کنید.

      یاعلی


نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس