一、开发环境
操作系统:Windows 10
开发环境:VS2015
编程语言:C#
IIS 版本:10.0.0.0
二、添加 WCF 服务、Internet Information Services(IIS)
1、进入 "控制面板",打开 "程序和功能",点击左上角的 "启用或关闭 Windows 功能" 后,在 ".NET Framework 4.6 高级服务" 中的子节点选中 "WCF 服务",如下图所示:
2、再找到 "Internet Information Services",同样选中该节点,如下图所示:
3、点击 "确定" 按钮以便安装这些服务与组件,等待完成安装即可。
三、新建一个 WCF 服务库
1、使用 VS2015 新建一个 WCF 服务库,并将项目名称改为 "MyWCFService",如下图所示:
2、在解决方案资源管理器里将 "IService1" 接口、"Service1" 类分别重命名为 "IMyWCFService" 与 "MyWCFService",如下图所示:
VS2015 将会分别创建 "IService1" 接口、"Service1" 类,"IService1" 接口含 GetData、GetDataUsingDataContract 方法,并使用 "Service1" 类实现了该接口,代码如下:
"IService1" 接口:
- // 注意: 使用"重构"菜单上的"重命名"命令,可以同时更改代码和配置文件中的接口名"IMyWCFService"。
- [ServiceContract] public interface IService1 { [OperationContract] string GetData(int value);
- [OperationContract] CompositeType GetDataUsingDataContract(CompositeType composite);
- // TODO: 在此添加您的服务操作
- }
- // 使用下面示例中说明的数据约定将复合类型添加到服务操作。
- [DataContract] public class CompositeType {
- bool boolValue = true;
- string stringValue = "Hello ";
- [DataMember] public bool BoolValue {
- get {
- return boolValue;
- }
- set {
- boolValue = value;
- }
- }
- [DataMember] public string StringValue {
- get {
- return stringValue;
- }
- set {
- stringValue = value;
- }
- }
- }
"Service1" 类:
- // 注意: 使用"重构"菜单上的"重命名"命令,可以同时更改代码和配置文件中的类名"Service1"。
- public class Service1: IService1 {
- public string GetData(int value) {
- return string.Format("You entered: {0}", value);
- }
- public CompositeType GetDataUsingDataContract(CompositeType composite) {
- if (composite == null) {
- throw new ArgumentNullException("composite");
- }
- if (composite.BoolValue) {
- composite.StringValue += "Suffix";
- }
- return composite;
- }
- }
3、将鼠标移到解决方案资源管理器中项目 "MyWCFService" 上并右击鼠标,弹出上下文菜单,在菜单中选中 "发布" 后,弹出下图所示的 "发布 WCF 服务" 对话框,如下图所示:
在目标位置选择 "D:\WCF",其他按默认,点击 "发布" 按钮,即可在 "D:\WCF" 文件夹里生成如下图所示的文件:
四、新建一个 WCF 服务网站
1、点击打开 IIS,新建一个网站,网站名称设置为 "MyWCFService",物理地址选择 "D:\WCF",端口从默认的 80 改为 81,如下图所示:
2、点击确定后,即新建一个 WCF 服务网站,我们可以在浏览器输入 "http://localhost:81/MyWCFService.MyWCFService.svc" 进行验证,如下图所示:
五、新建一个控制台客户端测试 WCF 服务
1、在原来的解决方案里新建一个项目名为 "WCFTestClient" 的控制台程序,如下图所示:
2、鼠标右键点击项目 "WCFTestClient",在弹出的上下文菜单中选择 "设为启动项目",如下图所示:
3、鼠标右键点击项目 "WCFTestClient" 子节点 "引用",在弹出的上下文菜单中选择 "添加服务引用",如下图所示:
4、将弹出 "添加服务引用" 对话框,在 "地址" 输入刚刚建的 WCF 服务网站地址(http://localhost:81/MyWCFService.MyWCFService.svc),点击 "转到" 按钮之后,将会在 "服务" 列表里列出刚才建的服务,选择 "IMyWCFService" 后,将会在 "操作" 列表里列出 GetData、GetDataUsingDataContract 方法,如下图所示:
5、将命名空间改为 "MyWCFReference" 后点击 "确定" 按钮之后,将会在项目 "WCFTestClient" 子节点增加 "Service References" 等,如下图所示:
6、在 Program 类上方添加对 WCF 服务引用,并在 Main 主函数里输入以下代码:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using WCFTestClient.MyWCFReference;
- namespace WCFTestClient {
- class Program {
- static void Main(string[] args) {
- MyWCFServiceClient client = new MyWCFServiceClient();
- Console.WriteLine(client.GetData(123456));
- CompositeType cType = new CompositeType() {
- StringValue = "Hello World!",
- BoolValue = true
- };
- Console.WriteLine(client.GetDataUsingDataContract(cType).StringValue);
- }
- }
- }
六、运行客户端控制台程序
运行 "WCFTestClient" 客户端控制台程序,如下图所示:
来源: http://www.cnblogs.com/cncc/p/7156300.html