wcf已经发行了很久的时间,可能还有需要入门wcf的朋友,我这里专门写了一个教程来分享给大家!
如上图所示,新建一个WCF服务库项目,打开VS->新建项目->WCF->WCF服务库,名字我们就使用默认的WcfServiceLibrary1,
创建项目成功之后,我们在【解决方案资源管理器】中选中刚才新建项目的的app.config
右键app.config选择编辑WCF配置,
如果没有编辑WCF配置选项,我们选择 vs菜单项【工具】-> WCF服务配置编辑器,打开之后,再选择app.config,打开编辑项就可以了。
打开app.config的wcf编辑器之后,选择 服务->终结点->第一个空名称->终结点属性,将binding项,改成netTcpBinding
将第二个空名称,binding项,改成mexTcpBinding
选择主机->基址(选中)->点击编辑,改成net.tcp//localhost:8523/Service1/
然后选择服务行为->serviceMetadata(服务元数据)->将HttpGetEnabled和HttpsGetEnabled设置成False
保存配置。
下面进行2种设置方案,第一种是用来调试wcf服务的环境,第二种是通过windows服务来部署wcf的环境
先进行第一种,控制台应用部署调试wcf服务的环境
选择c#控制台应用,使用默认名称ConsoleApp1点击确认,然后引用刚才新建的WcfServiceLibrary1项目。
将控制台应用Program类代码改为如下,
class Program
{
internal static ServiceHost myServiceHost = null;
static void Main(string[] args)
{
Console.WriteLine("任意键启动wcf服务");
Console.ReadKey();
Start();
Console.WriteLine("启动成功");
Console.WriteLine("任意键结束wcf服务");
Console.ReadKey();
Stop();
Console.WriteLine("成功结束");
Console.ReadKey();
}
protected static void Start()
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(WcfServiceLibrary1.Service1));
myServiceHost.Open();
}
protected static void Stop()
{
if (myServiceHost != null)
{
myServiceHost.Close();
myServiceHost = null;
}
}
}
下面是关键的一步,不要盲目操作,出现问题,可以在博客里面留言,或者发到我的邮箱提问loongsking@hotmail.com
复制WcfServiceLibrary1项目app.config中的,appSetting和system.serviceModel节点,将其复制到控制台应用的app.config中,完成后如图
注意保留控制台应用的startup节点
然后启动运行就可以了。