- WCF 教程
- WCF - 首頁
- WCF - 概述
- WCF - 與Web服務的比較
- WCF - 開發人員工具
- WCF - 架構
- WCF - 建立WCF服務
- WCF - 託管WCF服務
- WCF - IIS 託管
- WCF - 自託管
- WCF - WAS 託管
- WCF - Windows 服務託管
- WCF - 使用WCF服務
- WCF - 服務繫結
- WCF - 例項管理
- WCF - 事務
- WCF - RIA 服務
- WCF - 安全性
- WCF - 異常處理
- WCF 資源
- WCF - 快速指南
- WCF - 有用資源
- WCF - 討論
WCF - Windows 服務託管
Windows 服務託管的操作很簡單。以下是解釋該過程的步驟,包括必要的程式碼和螢幕截圖,以簡單易懂的方式進行說明。
步驟 1 − 現在讓我們建立一個 WCF 服務。開啟 Visual Studio 2008 並單擊“新建”→“專案”,然後從模板中選擇“類庫”。
步驟 2 − 向專案新增 System.ServiceModel 引用。這是用於建立 WCF 服務的核心程式集。
步驟 3 − 接下來,我們可以建立 ISimpleCalulator 介面。新增服務和操作契約屬性,如下所示:
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);
}
}
步驟 4 − 實現 ISimpleCalculator 介面,如下所示:
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;
}
}
}
步驟 5 − 構建專案並獲取 dll。現在,我們已經準備好 WCF 服務。我們將瞭解如何在 Windows 服務中託管 WCF 服務。
注意 − 在此專案中,提到我們是在同一個專案中建立契約和服務(實現)。但是,如果將兩者放在不同的專案中,始終是一個好習慣。
步驟 6 − 開啟 Visual Studio 2008 並單擊“新建”→“專案”,然後選擇“Windows 服務”。
步驟 7 − 將 'WindowsServiceHostedService.dll' 新增為專案的引用。此程式集將充當服務。
步驟 8 − 服務的 OnStart 方法可用於編寫 WCF 的託管程式碼。我們必須確保只使用一個服務主機物件。OnStop 方法用於關閉服務主機。以下程式碼顯示如何在 Windows 服務中託管 WCF 服務。
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
UrihttpUrl = newUri("https://:8090/WindowsServiceHostedService/SimpleCalculator");
//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);
}
}
}
步驟 9 − 為了安裝服務,我們需要 Windows 服務的 Installer 類。因此,向專案新增一個新的 Installer 類,該類繼承自 Installer 類。以下程式碼顯示服務的名稱、啟動型別等。
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);
}
}
}
步驟 10 − 構建專案以獲取可執行檔案 WCFHostedWindowsService.exe。接下來,我們需要使用 Visual Studio 命令提示符安裝服務。因此,透過單擊“開始”→“所有程式”→“Microsoft Visual Studio 2008”→“Visual Studio 工具”→“Visual Studio 命令提示符”開啟命令提示符。使用 installutil 實用程式應用程式,您可以安裝服務,如下所示: