c#实现java web服务注册的方法

在windows故障转移集群(failed over cluster)的实践过程中,需要将java web启动脚本添加至集群角色,但会报“无法创建通用脚本资源。 创建通用脚本资源时出错。”的错误。

对于MySQL服务的添加十分顺利,在集群转移的过程中也工作正常。故考虑将web启动脚本制作成服务的形式,在后台运行。

参考一些方法后,记录如下:
**工具:**vs2012
**语言:**c#

1. 新建Windows服务项目

新建项目

2. 写服务内容

重写WindowsService1.Service1的OnStart和OnStop方法

protected override void OnStart(string[] args)
{
    Process proc = null;
    try
    {
        string startDir= string.Format(@"X:\startScriptDir\");
        proc = new Process();
        proc.StartInfo.WorkingDirectory = startDir;
        proc.StartInfo.FileName = "startup.bat";
        proc.Start();
        proc.WaitForExit();
    }
    catch (Exception ex)
    {
        Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
    }
}

protected override void OnStop()
{
    Process proc = null;
    try
    {
        string stopDir= string.Format(@"X:\stopScriptDir\");
        proc = new Process();
        proc.StartInfo.WorkingDirectory = stopDir;
        proc.StartInfo.FileName = "shutdown.bat";
        proc.Start();
        proc.WaitForExit();
    }
    catch (Exception ex)
    {
        Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
    }
}

3 配置服务安装信息

3.1 配置serviceInstaller1
安装扩展的类的 ServiceBase 来实现服务。 在安装服务应用程序时,将由安装实用工具调用此类。
这里写图片描述
3.2 配置serviceProcessInstaller1
安装包含扩展的类的可执行文件 ServiceBase。 在安装服务应用程序时,将由安装实用程序,例如 InstallUtil.exe,调用此类。
这里写图片描述

4. 编译生成Release

5. 准备安装

5.1 新建一个安装服务用的文件夹,如Release
5.2 从Release中拷贝WindowsService1.exe到Release
5.3 从C:\Windows\Microsoft.NET\Framework64\v4.0.30319\下拷贝InstallUtil.exe到Release

6. 安装服务

启动管理员cmd进入到Release,执行

InstallUtil.exe /i WindowsService1.exe(安装服务)

安装服务

7 完成

可以通过启动和停止服务分别调用startup.bat和shutdown.bat。
服务制作失败需要重新制作的话,需要先将其卸载

InstallUtil.exe /u WindowsService1.exe(卸载服务)

服务是运行在后台的进程,不适用于需要界面显示的程序。

参考:

https://www.cnblogs.com/wxwx/p/5821059.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值