WCF接口的创建和使用
IIS默认没有WCF运行环境,我自行百度的解决方案,大家可以点击参考下
第一次做的时候参考的文章,创建WCF服务应用程序
是可以直接挂在IIS上运行的,不需要控制台去控制服务是否开启
1.使用VS2019创建一个新项目
![](https://img-blog.csdnimg.cn/20201202235849415.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L015emhvdXpob3U=,size_16,color_FFFFFF,t_70 )
![](https://img-blog.csdnimg.cn/20201202231240458.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L015emhvdXpob3U=,size_16,color_FFFFFF,t_70 )
将原有的 Class1.cs
文件删除,选择项目右键 -- 新建项,找到WCF 服务
在IService1.cs
中添加一段代码,
[OperationContract]
string GetData(int value);
![](https://img-blog.csdnimg.cn/2020120300045370.png)
在Service1.cs
中添加一段代码,
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
![](https://img-blog.csdnimg.cn/20201203000658550.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L015emhvdXpob3U=,size_16,color_FFFFFF,t_70)
2.添加一个控制台程序,控制接口服务的开启与关闭
创建完之后,添加WCF项目的引用
将WCF项目下的app.config配置,复制到控制台程序下的App.config,http地址可以自行修改
赋值这几行就可以了
此http地址后面接口测试的时候需要用到
<host>
<baseAddresses>
<add baseAddress="http://127.0.0.1/WcfService/Service/"/>
</baseAddresses>
</host>
打开控制台程序的 Program.cs
,将以下代码粘贴过去
var _lineService = new ServiceHost(typeof(Service1));
_lineService.Open();
Console.WriteLine("接口服务已启动");
while (true)
{
Console.ReadLine();
}
![](https://img-blog.csdnimg.cn/20201203002859921.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L015emhvdXpob3U=,size_16,color_FFFFFF,t_70 )
类名 Service1()
一定要写对了,对应的是WCF项目中的Service1.cs
,然后鼠标放上去添加using指令
下面这个 ServiceHost
直接引用dll程序集就行
将控制台项目设置成启动项目,运行
3.启动命令行工具 Developer Command Prompt for VS 2019
输入 wcftestclient
,出现 WCF 测试客户端界面
![](https://img-blog.csdnimg.cn/20201202232708402.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L015emhvdXpob3U=,size_16,color_FFFFFF,t_70 )
点击 文件 -- 添加服务,将控制台程序App.config中的http地址粘贴过来,点击确定出现如下界面
http://127.0.0.1/WcfService/Service/
![](https://img-blog.csdnimg.cn/20201203003250561.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L015emhvdXpob3U=,size_16,color_FFFFFF,t_70 )
4.测试系统给的接口是否好用
双击左侧的方法,在右侧上半部分输入一个值,点击调用,下面会出现一个返回值,证明接口调用成功
到这里接口就算是完成了,也可以再写一个winform窗体应用程序,调用下接口
5.添加一个winform项目,测试下接口
首先再添加服务引用之前,找到你的控制台程序文件目录下的debug,管理员启动exe程序
找到引用 -- 右键 -- 添加服务引用
将上面App.config中的http地址粘贴过来
http://127.0.0.1/WcfService/Service/
出现如下,就说明服务引用添加成功了
然后添加一个按钮,双击进入Click事件,添加如下代码
Service1Client sercive = new Service1Client();
// sercive.GetData(1);
MessageBox.Show(sercive.GetData(1));
![](https://img-blog.csdnimg.cn/20201203005306529.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L015emhvdXpob3U=,size_16,color_FFFFFF,t_70)
如果你不知道这个类名是什么,点击服务引用
这个就是你 的类名
Service1Client sercive = new Service1Client();
将winform程序设置为启动项目 运行
完美!
注意控制台程序相当于服务端,必须管理员运行它,然后再启动winform应用程序,才可以去调用这个接口
我将这个demo上传到CSDN上,有需要的可以去我上传的资源中下载WCFTest.zip,运行一下看看效果
我也存放在了百度网盘中,点击自提https://pan.baidu.com/s/1zVso8kr0qKXk7k5XuR68oA
提取码:1336