(原创:灰灰虫的家http://hi.baidu.com/grayworm)
上一篇文章中我们通过编写的控制台程序或WinForm程序来为本机或远程机提供WCF服务的方式,我们称这种方式为Self-Host服务发布方式,这一篇文章我们来看一下如何编写Windows服务来发布WCF服务。
第一步:建立Windows服务程序WindowsServiceHost
《图1》
《图2》
第二步:向ConsoleBookServiceHost程序中添加两个引用:一个是WCF服务库Services项目的引用,另一个是System.ServiceModel引用。
第三步:修改Service1的属性
在Service1的设计界面中右击,选择“属性”,把其中的(Name)和ServiceName都改为BookServiceHost
《图3》
第四步:在Service1中编写代码如下
《图4》
第五步:配置App.Config。
在这里我们不再详细说明如何配置了,我们直接把上一次SelfHostBookService项目中的App.Config复制过来却可
《图5》
到这里我们已经作好一个可以发布BookService服务的Windows Service宿主程序了。
下面我们要看一看如何把这个Windows Service运行起来。
第六步:为服务添加安装程序。
在Service1设计界面中右击,选择“添加安装程序”
《图6》
生成安装程序组件,出现界面如下
《图7》
serviceProcessInstaller1:服务安装的信息
《图8》
serviceInstaller1:服务本身的信息
《图9》
编译成功
第七步:安装上面编写完的服务
打开VS2008命令窗口,进入当前项目的bin/Debug文件夹中,执行命令 :installutil WindowsServiceHost.exe
《图10》
《图11》
第八步:启动BookServiceHost服务
打开服务管理器,我们可以看到我们刚刚注册上的服务已经存在了,但还没有启动,右击“启动”
《图12》
第九步:测试服务:
打开IE,在地址栏中输入:http://localhost:8081/BookService 出现下面的界面
《图13》
在VS2008命令窗口中输入:wcftestclient http://localhost:8081/BookService 出现下面的界面
《图14》
调用相应终结点的方法添加书籍,运行正常。