Visual Studio2017,使用IIS托管。文中涉及一些WCF的基本概念,e.g.服务契约、托管等。可以先阅读《WCF服务编程》第一章。
1.新建一个WCF服务库(WCF Service Library)
有两个默认的文件:IService1.cs和Service1.cs
IService.cs中定义了服务契约和数据契约。服务契约中定义了两个操作契约,在本demo中我们仅使用第一个,所以我就把第二个注释掉了。因为也没使用到数据契约,因此把数据契约也注释掉了。
Service.cs实现了IService接口。
2.服务创建好了之后,需要把服务托管起来,客户端才能使用该服务。WCF提供的三种托管服务的方式:IIS,自托管和WAS。在本demo中我们使用IIS。先确认系统已经配置了IIS。打开控制面板-程序-打开或关闭Windows功能,确认Internet信息服务这项已经选中。然后在开始菜单栏中,输入“IIS”就可以打开IIS管理器了。
右键“网站”,选择“添加网站”
添加好网页后,开启“目录浏览”。双击“目录浏览”,选择启用。
配置一下应用池,否则会容易出现应用池版本低而报错的情况。
3.回到Visual Studio,修改App.config配置文件,主要是修改基地址,然后右键发布服务,选择刚刚添加的网页。
已经将Service1托管到IIS中了
4.创建客户端(本demo使用控制台应用),获取服务。
右键引用,添加服务引用。
program.cs代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Client { class Program { static void Main(string[] args) { using (ServiceReference1.Service1Client client = new ServiceReference1.Service1Client()) { Console.WriteLine("-----------------------Begin-------------------------"); Console.WriteLine(client.GetData(3)); Console.WriteLine("-----------------------End---------------------------"); } Console.Read(); } } }
运行结果:
demo代码:
https://github.com/Larissa1990/WCFdemo_IIShost
参考文献:
https://www.cnblogs.com/xinhaijulan/archive/2010/11/14/1876989.html
https://www.cnblogs.com/buchizaodian/p/9945170.html
《WCF服务编程》