C#启动和停止windows服务的实例代码

 更新时间:2013年09月04日 14:54:24   作者:  
这篇文章介绍了C#启动和停止windows服务的实例代码,有需要的朋友可以参考一下
复制代码 代码如下:

<script type="text/javascript"> 
      function showLoading(desc) { 
          $("body").append("<div id=\"processingdiv\" style=\"display:none;\"><div class=\"popup\"> <div class=\"popup-body\"><div class=\"loading\"><span style='width:128px; height:128px;'><img src='../img/progress.gif' /></span><span class='spnContent'>" + desc + "</span></div></div></div></div>"); 
          //alert($("head").html());   
          $.openPopupLayer({ 
              name: "processing", 
              width: 500, 
              target: "processingdiv"
          }); 
      } 
      function hideLoading() { 
          $.closePopupLayer('processing'); 
          $("#processingdiv").remove(); 
      }   
  function changeShowStatus(){ 
      $.post("Ajax/ShowHandler.ashx", { "action": "ChangeStatusShow" }, function (data) { 
          $("#spnServerStatus").text(data); 
          hideLoading(); 
      }); 
  } 
  var isValidServerStatus = function (data) { 
      if (data == "run") { 
          $("#serverStatus").text("停止").css("color", "red"); 
          changeShowStatus(); 
          //setTimeout(changeShowStatus, 6000); 
      } 
      else if (data == "end") { 
          $("#serverStatus").text("启动").css("color", "green"); 
          changeShowStatus(); 
          //setTimeout(changeShowStatus, 6000); 
      } 
      else if (data == "NoNormalEnd") { 
          $("#serverStatus").text("启动").css("color", "green"); 
          changeShowStatus(); 
      } 
      else if (data == "empty") { 
          alert('服务不存在!'); 
      } 
      else if (data == "startfail") { 
          alert('启动失败!'); 
          $("#serverStatus").text("启动").css("color", "green"); 
          changeShowStatus(); 
      } 
      else if (data == "stopfail") { 
          alert("停止失败!"); 
          $("#serverStatus").text("停止").css("color", "red"); 
          changeShowStatus(); 
      } 
      else { 
          alert('操作失败!' + data); 
          window.location.reload(); 
      } 
  } 
  $(function () { 
      $("#serverStatus").click(function () { 
          var txt = $("#serverStatus").text(); 
          if (txt == "停止") { 
              showLoading("服务正在停止......"); 
              $("#spnServerStatus").text("正在停止..."); 
              $.post("Ajax/ServerHandler.ashx", { "action": "stop" }, isValidServerStatus); 
          } 
          else if (txt == "启动") { 
              showLoading("服务正在启动......"); 
              $("#spnServerStatus").text("正在启动..."); 
              $.post("Ajax/ServerHandler.ashx", { "action": "start" }, isValidServerStatus); 
          } 
      }); 
  }); 
  </script>

一般处理程序如下:
复制代码 代码如下:

public class ServerHandler : IHttpHandler 
  { 
      public void ProcessRequest(HttpContext context) 
      { 
          context.Response.ContentType = "text/plain"; 
          string action = context.Request["action"]; 
          string serverName = QuarrysClass.WindowsServerName; 
          EnumServiceStatus status = CommonClass.GetServiceStatus(serverName); 
          if (string.IsNullOrEmpty(serverName)) 
          { 
              context.Response.Write("empty"); 
          } 
          if (action == "start") 
          { 
              byte[] ver = new byte[1024]; 

              try
              { 
                  //开启服务    

                          if (CommonClass.StartWindowsService(serverName)) 
                          { 
                              context.Response.Write("run"); 
                          } 
                          else
                          { 
                              context.Response.Write("startfail"); 
                          } 
              } 
              catch (Exception ex) 
              { 
                  context.Response.Write("提示:"+ex.Message); 
              } 
          } 
          else if (action == "stop") //停止服务 
          { 
              try
              { 
                      if (CommonClass.StopWindowsService(serverName)) 
                      { 
                          //Thread.Sleep(6000*3); 
                          context.Response.Write("end"); 
                      } 
                      else
                      { 
                          context.Response.Write("stopfail"); 
                      } 
              } 
              catch (Exception ex) 
              { 
                  if (ex.Message == "超时时间已到而操作尚未完成。") 
                  { 
                      context.Response.Write("提示:" + ex.Message); 
                  } 
                  else
                  { 
                      context.Response.Write("NoNormalEnd"); 
                  } 
              } 
          } 
      } 

      public bool IsReusable 
      { 
          get
          { 
              return false; 
          } 
      } 
  }  

相关文章

  • C#使用foreach语句简单遍历数组的方法

    C#使用foreach语句简单遍历数组的方法

    这篇文章主要介绍了C#使用foreach语句简单遍历数组的方法,涉及C#中foreach语句的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • C#实现JWT无状态验证的实战应用解析

    C#实现JWT无状态验证的实战应用解析

    这篇文章主要介绍了C#实现JWT无状态验证的实战应用解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • C# 9 新特性之增强的foreach详解

    C# 9 新特性之增强的foreach详解

    这篇文章主要介绍了C# 9 新特性之增强的foreach的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • C# 对XML基本操作代码总结

    C# 对XML基本操作代码总结

    C# 对XML基本操作包括读取节点的数据,添加节点。读取节点属性,修改节点属性等
    2011-10-10
  • C#调用python.exe使用arcpy方式

    C#调用python.exe使用arcpy方式

    这篇文章主要介绍了C#调用python.exe使用arcpy方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • C#控制台应用程序中输出彩色字体

    C#控制台应用程序中输出彩色字体

    这篇文章主要为大家详细介绍了C#控制台应用程序中输出彩色字体的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • C# 特性AttributeUsage简介与使用教程

    C# 特性AttributeUsage简介与使用教程

    这篇文章主要介绍了C# 特性AttributeUsage简介与使用教程,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • c# WinForm制作图片编辑工具(图像拖动、缩放、旋转、抠图)

    c# WinForm制作图片编辑工具(图像拖动、缩放、旋转、抠图)

    这篇文章主要介绍了c# WinForm制作图片编辑工具(可实现图像拖动、缩放、旋转、抠图),帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#(WinForm) ComboBox和ListBox添加项及设置默认选择项

    C#(WinForm) ComboBox和ListBox添加项及设置默认选择项

    这篇文章主要介绍了C#(WinForm) ComboBox和ListBox添加项及设置默认选择项的的相关资料,需要的朋友可以参考下
    2014-07-07
  • 将Qt项目升级到Qt6吐血经验总结

    将Qt项目升级到Qt6吐血经验总结

    很多朋友向小编反馈将Qt项目升级到Qt6频繁出错,该如何处理呢,今天小编给大家带来了将Qt项目升级到Qt6吐血经验总结,感兴趣的朋友一起看看吧
    2021-07-07

最新评论