如果只是寄宿单个wcf服务,方法很简单,步骤:
1、创建好一个windows服务。关于windows服务内容见:http://www.cnblogs.com/zhaow/p/7866916.html
2、在windows服务的OnStart、OnStop方法中,寄宿服务。实现参考如下:

namespace MyWindowsServiceHost
{
public partial class MyServiceHost : ServiceBase
{
private ServiceHost myHost = new ServiceHost(typeof(MyService));
public MyServiceHost()
{
InitializeComponent();
} protected override void OnStart(string[] args)
{
myHost.Open();
} protected override void OnStop()
{
myHost.Close();
}
}
}

3、将WCF相关配置copy到windows服务的app.config中。
4、写一个用于安装和卸载windows服务的bat文件,如:

@echo off
set /p var=是否要安装 WCF 服务(Y/N):
if "%var%" == "y" (goto install) else (goto batexit) :install
copy C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe InstallUtil.exe /Y
call InstallUtil.exe WindowsService.exe
pause :batexit
exit //卸载 @echo off
set /p var=是否要卸载 WCF服务(Y/N):
if "%var%" == "y" (goto uninstall) else (goto batexit) :uninstall
copy C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe InstallUtil.exe /Y
call InstallUtil.exe /u WindowsService.exe
pause :batexit
exit

5、关于.bat批处理文件
新建一个.txt,把代码copy进去,再把扩展名改成.bat。批处理文件要放到Windows服务程序生成的exe同级目录下。

注意32位系统和64位系统的区别:
32位操作系统:

@echo off
set /p var=是否要安装 WCF 服务(Y/N):
if "%var%" == "y" (goto install) else (goto batexit) :install
copy C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe InstallUtil.exe /Y
call InstallUtil.exe MyWindowsServiceHost.exe
call sc start "MyServiceHost"
pause :batexit
exit

64位操作系统:

@echo off
set /p var=是否要安装 WCF 服务(Y/N):
if "%var%" == "y" (goto install) else (goto batexit) :install
copy C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe InstallUtil.exe /Y
call InstallUtil.exe MyWindowsServiceHost.exe
call sc start "MyServiceHost"
pause :batexit
exit

如果是在x86平台下生成的Windows服务安装程序,即使是在64位操作系统下,也需要使用32位下的批处理文件。

接下来,测试下服务的安装与卸载:

安装卸载测试

安装

右键service_install.bat,以管理员身份运行

WCF寄宿windows服务一-LMLPHP

输入y,回车

WCF寄宿windows服务一-LMLPHP

查看系统服务,已成功安装

WCF寄宿windows服务一-LMLPHP

卸载

右键service_uninstall.bat,以管理员身份运行

WCF寄宿windows服务一-LMLPHP

输入y,回车

WCF寄宿windows服务一-LMLPHP

查看系统服务,已成功卸载

WCF寄宿windows服务一-LMLPHP

本文参考:
http://blog.csdn.net/doris_d/article/details/46739193
https://www.cnblogs.com/stulife/archive/2011/04/14/2016118.html
https://www.cnblogs.com/seekdream/p/6821348.html

04-24 18:34
查看更多