使用asp.net web管理windows服务或软件的停止 启动等

要用web管理windows服务器的进程服务,还是得微软自家的asp.net。
业务场景是这样;
有一个应用软件在服务器上,这个软件没有提供外部接口,外部代码修改其数据库内容后。
从外部修改软件的数据库内容,这个软件并没不会实时生效,要重启一下才会生效。
于是只能搭载一个asp.net 的web url来 主动调用达到重启软件目的。

请注意,这个能重启服务器进程服务,那站点所属的进程池必须以管理员身份运行。
或者其它用户,并授权其它用户服务管理权限。这里就以管理员了。
cc99.png

核心代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ServiceProcess;

public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["t"] == null) return;
        var service = new ServiceController { ServiceName = "XXXXXX服务名称" };
        switch (service.Status)
        {
            case ServiceControllerStatus.Stopped:
                service.Start();
                Response.Write("已停止,即将启动");
                break;
            case ServiceControllerStatus.Running:
                service.Stop();
                service.WaitForStatus(ServiceControllerStatus.Stopped);
                service.Start();
                Response.Write("重启完成");
                break;
            default:
                Response.Write("已有重启任务正在运行");
                break;
        }
        Response.End();
    }
}

效果如下:
888.png


标签: asp.net

非特殊说明,本博所有文章均为博主原创。

最新文章

发表评论