好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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]客户端控制台程序,如下图所示:

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

原文链接:http://HdhCmsTestcnblogs测试数据/cncc/archive/2017/07/12/7156300.html

dy("nrwz");

查看更多关于C#创建WCF服务控制台应用程序详解的详细内容...

  阅读:45次