新聞中心
其實(shí),運(yùn)用WCF對(duì)WEB進(jìn)行相關(guān)的操作是一個(gè)比較簡單的操作技術(shù),我們可以通過這篇文章介紹的具體操作步驟來充分的掌握這一應(yīng)用技巧。希望對(duì)此有需要的朋友們可以通過這里介紹的內(nèi)容獲得一些幫助。#t#

例子:
WCF創(chuàng)建WebService第一步: 添加WCF名稱域:
using System.ServiceModel;
using System.ServiceModel.Description;
ServiceModel 是.NET當(dāng)中用來實(shí)現(xiàn)WCF服務(wù)功能的名稱域。
WCF創(chuàng)建WebService第二步: 定義服務(wù)。
- [ServiceContract()]
- public interface IServiceInterface
- {
- [OperationContract]
- string sayHello( string text );
- }
- public class Service1 : IServiceInterface
- {
- public string sayHello(string text)
- {
- return "hello" + text;
- }
- }
一般來講,將服務(wù)定義為接口,然后由它衍生出多中服務(wù)的類。這樣做的一個(gè)好處是可以在接口級(jí)別定義屬性,而在服務(wù)的類的級(jí)別看不到任何屬性信息。只需要實(shí)現(xiàn)預(yù)先定義好的方法就可以。
WCF創(chuàng)建WebService第三步: 建立宿主,WCF的Service可以運(yùn)行在程序,Windows 服務(wù)或者ASP.NET上面,我們使用Console來建立宿主:
- internal class MyServiceHost
- {
- internal static ServiceHost mySvcHost = null;
- internal static void StartService()
- {
- ……
- }
- internal static void StopService()
- {
- ……
- }
- }
- static void Main(string[] args)
- {
- MyServiceHost.StartService();
- Console.ReadLine();
- MyServiceHost.StopService();
- Console.Read();
- return;
- }
這里,我們定義了一個(gè)宿主 MyServiceHost,其中包含一個(gè)ServiceHost類的成員,ServiceHost類是ServiceModel當(dāng)中用來創(chuàng)建通信對(duì)象的類。我們可以通過它來創(chuàng)建一個(gè)監(jiān)聽的對(duì)象,成為EndpointListener.
WCF創(chuàng)建WebService第四步:創(chuàng)建WCF運(yùn)行時(shí)。
- internal static void StartService()
- {
- //首先,創(chuàng)建一個(gè)ServiceHost對(duì)象,傳入的參數(shù)是Service對(duì)象的類型和服務(wù)的地址。
- Uri address = new Uri("http://localhost:8080/service1");
- mySvcHost = new ServiceHost( typeof(Service1),address );
- //在創(chuàng)建的ServiceHost對(duì)象當(dāng)中查找,看是否存在ServiceMetadataBehaviour的元數(shù)據(jù)行為
- //描述,如果沒有找到,創(chuàng)建一個(gè)新的ServiceMetadataBehaviour對(duì)象。
- ServiceMetadataBehavior behaviour = mySvcHost.Description.
Behaviors.Find(); - if (behaviour == null)
- behaviour = new ServiceMetadataBehavior();
- //設(shè)置允許進(jìn)行HttpGet操作。
- behaviour.HttpGetEnabled = true;
- //設(shè)置MetadataExporter導(dǎo)出Metadata時(shí)遵循WS-Policy 1.5規(guī)范。
- behaviour.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
- //將創(chuàng)建好的behaviour加入到宿主實(shí)例的行為描述組當(dāng)中。
- mySvcHost.Description.Behaviors.Add(behaviour);
- //加入MetadataExchange endpoint.
- mySvcHost.AddServiceEndpoint(
- ServiceMetadataBehavior.MexContractName,
- MetadataExchangeBindings.CreateMexHttpBinding(),
- "mex"
- );
- //加入應(yīng)用程序 endpoint
- WSHttpBinding binding = new WSHttpBinding();
- mySvcHost.AddServiceEndpoint(typeof(IServiceInterface),
binding, address);- //打開 ServiceHost 實(shí)例。
- mySvcHost.Open();
- }
以上就是我們?yōu)榇蠹医榻B的WCF創(chuàng)建WebService所有操作步驟。
當(dāng)前名稱:WCF創(chuàng)建WebService正確操作步驟詳解
當(dāng)前URL:http://m.5511xx.com/article/cdcgpoj.html


咨詢
建站咨詢
