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
保存配置。
进入设计界面,选择添加安装程序,项目会自动添加一个ProjectInstaller.cs文件,
选择ProjectInstaller.cs文件,选择serviceProcessInstaller1
在serviceProcessInstaller1右下角属性里面,选择Account项改成NetworkService(网络服务)
选择serviceInstaller1,将StartType项改成Automatic(自动启动)
在解决方案资源管理器中选择Service1.cs,右键选择查看代码
将代码改为如下
public partial class Service1 : ServiceBase
{
internal static ServiceHost myServiceHost = null;
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(Service1));
myServiceHost.Open();
}
protected override void OnStop()
{
if (myServiceHost != null)
{
myServiceHost.Close();
myServiceHost = null;
}
}
}
编译成功之后,选择windows开始菜单,选择vs命令行
使用D: 或者C:
切换磁盘,使用cd命令跳转到指定文件夹
使用Installutil WindowsService1.exe 命令安装服务
使用Installutil /u WindowsService1.exe命令卸载服务