一、开发环境
操作系统: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服务控制台应用程序详解的详细内容...