- 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();
}
}
}
广告信息