
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترمشخصات مقاله
Self-hosting (میزبانی سرویس در یک اپلیکیشنConsole)
WCF –Self-hosting )میزبانی سرویس در یک اپلیکیشن (Console
در این آموزش سرویس WCF بر روی یک اپلیکیشن console میزبانی می شود. در زیر نحوه ی میزبانی سرویس در این اپلیکیشن را به صورت گام به گام شرح می دهیم.
گام اول –ابتدا به ایجاد service contract و پیاده سازی آن می پردازیم. برای این منظور یک اپلیکیشن Console ایجاد کرده و آن را MyCalculatorService نام گذاری می کنیم. این سرویس یک عملیات محاسباتی ساده را انجام داده و جمع دو عدد را در خروجی برمی گرداند.

گام دوم –حال بر روی References در Solution Explorer راست کلیک کرده و سپس گزینه ی Add References را انتخاب کنید. پنجره ی زیر به نمایش در می آید. ارجاع System.ServiceModel را به پروژه اضافه نمایید.

گام سوم –یک رابط ISimpleCalculator ایجاد کرده، سپس attribute های ServiceContract و OperationContract را مانند زیر به کلاس و تابع اضافه نمایید. در آموزش های بعدی درباره ی هر یک از این contract ها توضیحات بیشتری را خواهیم داد. در توضیحی مختصر می توان گفت که این contract ها متد (عملیاتی که سرویس انجام می دهد) را در دسترس کلاینت قرار می دهند.
گام چهارم –code behind این فایل به ترتیب زیر می باشد:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; namespace MyCalculatorWCFService { [ServiceContract()] Public interface ISimpleCalculator { [OperationContract()] int Add(int num1, int num2); } }
گام پنجم –MyCalculatorService کلاسی است که رابط IMyCalculatorService را مانند زیر پیاده سازی می کند.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyCalculatorWCFService { Class SimpleCalculator : ISimpleCalculator { Public int Add(int num1, int num2) { return num1 + num2; } } }
گام ششم –اکنون سرویس آماده است. کافی است فرایند میزبانی را پیاده سازی کنیم. یک اپلیکیشن console جدید ایجاد کرده و آن را 'MyCalculatorWCFServiceHost' نام گذاری کنید.
گام هفتم –حال ارجاع (reference) system.servicemodel و پروژه ی MyCalculatorWCFService را اضافه کنید.

Code behind مربوطه به شرح زیر می باشد:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using MyCalculatorWCFService; using System.ServiceModel; using System.ServiceModel.Description; namespace MyCalculatorWCFServiceHost { class Program { static void Main(string[] args) { //Create a URI to serve as the base address UrihttpUrl = newUri("http://localhost:8090/MyCalculatorWCFService/SimpleCalculator"); //Create ServiceHost ServiceHost host = newServiceHost(typeof(MyCalculatorWCFService.ISimpleCalculator), httpUrl); //Add a service endpoint host.AddServiceEndpoint(typeof(MyCalculatorWCFService.ISimpleCal culator), newWSHttpBinding(), ""); //Enable metadata exchange ServiceMetadataBehaviorsmb = newServiceMetadataBehavior(); smb.HttpGetEnabled = true; host.Description.Behaviors.Add(smb); //Start the Service host.Open(); Console.WriteLine("Service is host at " + DateTime.Now.ToString()); Console.WriteLine("Host is running... Press key to stop"); Console.ReadLine(); } } }