یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی
🎯 ثبت نام
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
تسلط جامع بر MVC Core برای توسعه وب حرفه‌ای

یادگیری MVC Core از مبانی تا پیشرفته: شی‌گرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژه‌های کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!

مشاهده بیشتر

میزبانی سرویس WCF توسط یک سرویس ویندوز

دوره های پیشنهادی

WCF –میزبانی سرویس WCF توسط یک سرویس ویندوز (windows service)

عملیات میزبانی سرویس WCF بر روی Windows service بسیار آسان است. در زیر مراحل راه اندازی و کدنویسی لازم به همراه تصاویر آموزشی ارائه گردیده است.

گام اول –محیط Visual Studio را راه اندازی کرده و سپس بر روی گزینه ی New → Project کلیک کنید. حال Class Library را از قالب های موجود انتخاب نمایید.

آموزش WCF

گام دوم – فضای نام (ارجاع) System.ServiceModel را به پروژه اضافه کنید. این فضای نام در واقع همان assembly (فایل dll) اصلی است که برای ساخت سرویس WCF مورد استفاده می گیرد.

گام سوم – در این مرحله رابط (interface) ISimpleCalulator را ایجاد می کنیم. برای این منظور attribute های ServiceContract و OperationContract را مانند زیر به کد اضافه می کنیم:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace WindowsServiceHostedService
{
 [ServiceContract]
 public interfaceISimpleCalculator
  {
     [OperationContract]
     int Add(int num1, int num2);
     [OperationContract]
     int Subtract(int num1, int num2);
     [OperationContract]
     int Multiply(int num1, int num2);
     [OperationContract]
     double Divide(int num1, int num2);
  }
}<button></button>

گام چهارم –رابط (interface) ISimpleCalculator را مانند زیر پیاده سازی نمایید:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsServiceHostedService
{
 Class SimpleCalulator : ISimpleCalculator
  {
     Public int Add(int num1, int num2)
     {
        return num1 + num2;
     }
     Public int Subtract(int num1, int num2)
     {
        return num1 - num2;
     }
     Public int Multiply(int num1, int num2)
     {
        return num1 * num2;
     }
     Public double Divide(int num1, int num2)
     {
        if (num2 != 0)
           return num1 / num2;
        else
           return 0;
     }
  }
}<button></button>

گام پنجم –پروژه را کامپایل (build) کرده و فایل dll را دریافت نمایید. سرویس WCF اکنون آماده می باشد. حال نحوه ی میزبانی سرویس WCF در Windows service را شرح می دهیم.

نکته: در این آموزش، Contract و (پیاده سازی) Service را هر دو در یک پروژه ی واحد ایجاد کرده ایم. اما به طور کلی بهتر است هر یک را در پروژه ی مجزا قرار دهید.

گام ششم – محیط Visual Studio را راه اندازی کرده، بر روی New → Project کلیک کنید. سپس قالب Windows Service را انتخاب نمایید.

گام هفتم - 'WindowsServiceHostedService.dll' را به صورت یک reference به پروژه اضافه نمایید. این فایل dll (assembly) به عنوان service عمل می کند.

آموزش WCF

گام هشتم –متد OnStart از سرویس، کد hosting را برای میزبانی سرویس WCF می نویسد. لازم است از تنها یک نمونه شی میزبانی سرویس (service host object) استفاده نمایید. متد OnStop درست عکس متد نام برده عمل کرده و سرویس را می بندد. کد زیر نحوه ی میزبانی سرویس WCF در Windows service را نمایش می دهد.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Description;
namespace WCFHostedWindowsService
{
 Partial class WCFHostedWindowsService : ServiceBase
  {
     ServiceHostm_Host;
     Public WCFHostedWindowsService()
     {
        InitializeComponent();
     }
     Private void InitializeComponent()
     {
        thrownewNotImplementedException();
     }
     protectedoverridevoidOnStart(string[] args)
     {
        if (m_Host != null)
        {
           m_Host.Close();
        }
        //Create a URI to serve as the base address
        //Create ServiceHost
        m_Host = newServiceHost typeof(WindowsServiceHostedService.SimpleCalulator), httpUrl);
        //Add a service endpoint
        m_Host.AddServiceEndpoint (typeof(WindowsServiceHostedService.ISimpleCalculator), newWSHttpBinding(), "");
        //Enable metadata exchange
        ServiceMetadataBehaviorsmb = newServiceMetadataBehavior();
        smb.HttpGetEnabled = true;
        m_Host.Description.Behaviors.Add(smb);
        //Start the Service
        m_Host.Open();
     }
     protectedoverridevoidOnStop()
     {
        if (m_Host != null)
        {
           m_Host.Close();
           m_Host = null;
        }
     }
     staticvoid Main()
     {
        ServiceBase[] ServicesToRun;
        ServicesToRun = newServiceBase[]
        {
           newWCFHostedWindowsService();
        
        ServiceBase.Run(ServicesToRun);
     }
  }
}<button></button>

گام نهم –برای نصب سرویس، ابتدا بایستی کلاس Installer را برای Windows service داشته باشید. بنابراین بایستی یک کلاس Installer جدید به پروژه اضافه کنید. این کلاس از کلاس پایه ی Installer به ارث برده می شود. کد زیر اسم Service، نوع StartUp و دیگر اطلاعات مربوط به سرویس را نمایش می دهد.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceProcess;
using System.Configuration.Install;
using System.ComponentModel;
using System.Configuration;
namespace WCFHostedWindowsService
{
  [RunInstaller(true)]
  Public class WinServiceInstaller : Installer
  {
     Private ServiceProcessInstaller process;
     Private ServiceInstaller service;
     Public WinServiceInstaller()
     {
        process = newServiceProcessInstaller();
        process.Account = ServiceAccount.NetworkService;
        service = newServiceInstaller();
        service.ServiceName = "WCFHostedWindowsService";
        service.DisplayName = "WCFHostedWindowsService";
        service.Description = "WCF Service Hosted";
        service.StartType = ServiceStartMode.Automatic;
        Installers.Add(process);
        Installers.Add(service);
     }
  }
}<button></button>

گام دهم –پروژه را build کرده و فایل اجرایی WCFHostedWindowsService.exe را دریافت نمایید. پس از آن سرویس را با استفاده از پنجره ی فرمان (command prompt) محیط Visual نصب نمایید. برای این منظور با کلیک بر روی Start→All Programs→Microsoft Visual Studio 2008→Visual Studio Tools→ Visual Studio Command Prompt پنجره ی فرمان را باز کرده و با درج دستورinstall util سرویس را مانند زیر نصب نمایید.

آموزش WCF
1395/05/12 2328 4
نظرات شما

نظرات خود را ثبت کنید...