- WCF 教程
- WCF - 主頁
- WCF - 概述
- WCF - 與 Web 服務比較
- WCF - 開發人員工具
- WCF - 架構
- WCF - 建立 WCF 服務
- WCF - 託管 WCF 服務
- WCS - IIS 託管
- WCF - 自託管
- WCF - WAS 託管
- WCF - Windows 服務託管
- WCF - 使用 WCF 服務
- WCF - 服務繫結
- WCF - 例項管理
- WCF - 事務
- WCF - RIA 服務
- WCF - 安全性
- WCF - 異常處理
- WCF 資源
- WCF - 快速指南
- WCF - 實用資源
- WCF - 討論
WCF - 自託管
在此處,WCF 服務託管在控制檯應用程式中。下面給出了以適合的步驟按順序解釋整個過程的過程。
步驟 1 − 首先,讓我們建立 Service 合約及其實現。建立一個控制檯應用程式,將其命名為 MyCalculatorService。這是一個返回兩個數字相加的簡單服務。
步驟 2 − 現在,右鍵單擊解決方案資源管理器中的引用並單擊新增引用。將開啟以下視窗;向專案新增 System.ServiceModel 引用。
步驟 3 − 建立一個 ISimpleCalculator 介面,向類新增 ServiceContract 和 OperationContract 屬性,如下所示。你將在後面的會話中更多地瞭解這些合約。這些合約將向外部世界公開方法以使用此服務。
步驟 4 − 此檔案背後的程式碼如下 −
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);
}
}
步驟 5 − 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;
}
}
}
步驟 6 − 現在,我們已經準備好服務。讓我們著手實現託管過程。建立一個新的控制檯應用程式,將其命名為“MyCalculatorWCFServiceHost”。
步驟 7 − 新增 system.servicemodel 和專案 MyCalculatorWCFService 的引用。
其背後的程式碼如下 −
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("https://: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();
}
}
}
廣告資訊