比如一个服务程序service1,displayName=‘邮件服务’。想在一台服务器上运行多份,名字端口都可以自己定义,该如何做。

解决方案 »

  1.   

    把程序整个目录复制出来,比如叫 Mail2,然后注册主服务程序(用新的关键字,用OpenSCManager,CreateService,CloseServiceHandle等API函数),配置端口(端口不能冲突),
      

  2.   

    1、为自己的服务,建立几个目录,如:d:\Server1\d:\Server2\d:\Server3\.....2、将执行文件,拷贝进不同的目录中。 d:\Server1\MySer.exed:\Server2\MySer.exed:\Server3\MySer.exe.....3、使用instsrv.exe,指令格式:instsrv [服务名] [应用程序路径]注意:instsrv Myser1 d:\Server1\MySer.exeinstsrv Myser1 d:\Server2\MySer.exeinstsrv Myser1 d:\Server3\MySer.exe......4、在注册表项“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\”中自动增加项[服务名],并在其下成功添加各个键值:“DisplayName”   =服务显示名     (字符串值)“Description”   =服务描述       (字符串值)“ImagePath”     =应用程序路径   (可扩充字符串值)“ObjectName”    =”LocalSystem”  (字符串值)“Type”          =10(16进制)     (dword值)“Start”         =2(16进制)      (dword值)“ErrorControl”  =1(16进制)      (dword值)如果不使用instsrv.exe,同样可以在注册表中手工添加实现:在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\”下新建一个项,项名为要显示的服务名,并在其下新建以上各个键,填入键值。注意:使用不同的'服务名称字符'(关键词),这样在“任务管理器”的“服务”,显示出服务项目,你能区别那个服务项目。      注意参数要不相同,特别是配置端口要不相同,否则二个服务执行同一任务,出错冲突。
      

  3.   

    1、为自己的服务,建立几个目录,如:
    d:\Server1\
    d:\Server2\
    d:\Server3\
    .....2、将执行文件,拷贝进不同的目录中。
    d:\Server1\MySer.exe
    d:\Server2\MySer.exe
    d:\Server3\MySer.exe
    .....3、使用instsrv.exe,指令格式:instsrv [服务名] [应用程序路径]
    instsrv Myser1 d:\Server1\MySer.exe
    instsrv Myser1 d:\Server2\MySer.exe
    instsrv Myser1 d:\Server3\MySer.exe
    ......4、在注册表项“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\”中自动增加项[服务名],并在其下成功添加各个键值:
    “DisplayName”   =服务显示名     (字符串值)
    “Description”   =服务描述       (字符串值)
    “ImagePath”     =应用程序路径   (可扩充字符串值)
    “ObjectName”    =”LocalSystem”  (字符串值)
    “Type”          =10(16进制)     (dword值)
    “Start”         =2(16进制)      (dword值)
    “ErrorControl”  =1(16进制)      (dword值)如果不使用instsrv.exe,同样可以在注册表中手工添加实现:在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\”下新建一个项,项名为要显示的服务名,并在其下新建以上各个键,填入键值。注意:
    1、使用不同的'服务名称字符'(关键词),这样在“任务管理器”的“服务”,显示出服务项目,你能区别那个服务项目。
    2、数要不相同,特别是配置端口要不相同,否则二个服务执行同一任务,出错冲突。