C#创建WCF服务控制台应用程序详解

 更新时间:2017年07月13日 10:09:34   作者:cnc  
这篇文章主要为大家详细介绍了C#创建WCF服务控制台应用程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一、开发环境

操作系统: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”客户端控制台程序,如下图所示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Unity中的RegisterPlugins实用案例深入解析

    Unity中的RegisterPlugins实用案例深入解析

    这篇文章主要为大家介绍了Unity中的RegisterPlugins实用案例深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • C# 如何获取处于运行中的Excel、Word对象

    C# 如何获取处于运行中的Excel、Word对象

    这篇文章主要介绍了C# 获取处于运行中的Excel、Word对象操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • C#连接数据库的几种方法

    C#连接数据库的几种方法

    这篇文章介绍了C#连接数据库的几种方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#面向对象编程中接口隔离原则的示例详解

    C#面向对象编程中接口隔离原则的示例详解

    在面向对象编程中,SOLID 是五个设计原则的首字母缩写,旨在使软件设计更易于理解、灵活和可维护。本文将通过实例详细讲讲C#面向对象编程中接口隔离原则,需要的可以参考一下
    2022-07-07
  • C#中的委托介绍

    C#中的委托介绍

    这篇文章主要介绍了C#中的委托介绍,本文讲解了声明委托的方式、匿名方法、多播委托等内容,需要的朋友可以参考下
    2015-01-01
  • C#的字符串比较

    C#的字符串比较

    这篇文章主要介绍了c# 字符串操作的相关知识,文中讲解的非常详细,代码帮助大家更好的学习,感兴趣的朋友可以参考下,希望能给你带来帮助
    2021-07-07
  • 轻松学习C#的ArrayList类

    轻松学习C#的ArrayList类

    轻松学习C#的ArrayList类,对C#的ArrayList类感兴趣的朋友可以参考本篇文章,帮助大家更灵活的运用C#的ArrayList类
    2015-11-11
  • C#循环与循环控制的表达式树实现

    C#循环与循环控制的表达式树实现

    这篇文章介绍了C#循环与循环控制的表达式树实现,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • C#获取CPU处理器核心数量的方法

    C#获取CPU处理器核心数量的方法

    本文主要介绍了C#获取CPU处理器核心数量的方法,代码简单易懂,具有很好的参考价值,需要的朋友可以看下
    2016-12-12
  • c#中的泛型委托详解

    c#中的泛型委托详解

    本文主要介绍了c#中的泛型委托。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01

最新评论