要用web管理windows服务器的进程服务,还是得微软自家的asp.net。
业务场景是这样;
有一个应用软件在服务器上,这个软件没有提供外部接口,外部代码修改其数据库内容后。
从外部修改软件的数据库内容,这个软件并没不会实时生效,要重启一下才会生效。
于是只能搭载一个asp.net 的web url来 主动调用达到重启软件目的。
请注意,这个能重启服务器进程服务,那站点所属的进程池必须以管理员身份运行。
或者其它用户,并授权其它用户服务管理权限。这里就以管理员了。
核心代码如下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();
}
}
效果如下:
非特殊说明,本博所有文章均为博主原创。
最新文章