源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

.net重启iis线程池和iis站点程序代码分享

  • 时间:2020-12-11 02:44 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:.net重启iis线程池和iis站点程序代码分享
重启站点:
[u]复制代码[/u] 代码如下:
 /// <summary>         /// 根据名字重启站点.(没重启线程池)         /// </summary>         /// <param name="sitename"></param>         static void RestartWEbSite(string sitename)         {             try             {                 var server = new ServerManager();                 var site = server.Sites.FirstOrDefault(s => s.Name == sitename);                 if (site != null)                 {                     site.Stop();                     if (site.State == ObjectState.Stopped)                     {                     }                     else                     {                         Console.WriteLine("Could not stop website!");                         throw new InvalidOperationException("Could not stop website!");                     }                     site.Start();                 }                 else                 {                     Console.WriteLine("Could not find website!");                     throw new InvalidOperationException("Could not find website!");                 }             }             catch (Exception e)             {                 Console.WriteLine(e);             }         }         /// <summary>         /// 重启完之后.要再检测下.是否开启了         /// </summary>         /// <param name="sitename"></param>         static void FixWebsite(string sitename)         {             try             {                 var server = new ServerManager();                 var site = server.Sites.FirstOrDefault(s => s.Name == sitename);                 if (site != null)                 {                     if (site.State != ObjectState.Started)                     {                         Thread.Sleep(500);                         //防止状态为正在开启                         if (site.State != ObjectState.Started)                         {                             site.Start();                         }                     }                 }             }             catch (Exception e)             {                 Console.WriteLine(e);             }         }
重启iis线程池:
[u]复制代码[/u] 代码如下:
/// <summary>         /// 线程池名字         /// </summary>         /// <param name="name"></param>         static void RestartIISPool(string name)         {             string[] cmds = { "c:", @"cd %windir%\system32\inetsrv", string.Format("appcmd stop apppool /apppool.name:{0}", name), string.Format("appcmd start apppool /apppool.name:{0}", name) };             Cmd(cmds);             CloseProcess("cmd.exe");         }         /// <summary>         /// 运行CMD命令         /// </summary>         /// <param name="cmd">命令</param>         /// <returns></returns>         public static string Cmd(string[] cmd)         {             Process p = new Process();             p.StartInfo.FileName = "cmd.exe";             p.StartInfo.UseShellExecute = false;             p.StartInfo.RedirectStandardInput = true;             p.StartInfo.RedirectStandardOutput = true;             p.StartInfo.RedirectStandardError = true;             p.StartInfo.CreateNoWindow = true;             p.Start();             p.StandardInput.AutoFlush = true;             for (int i = 0; i < cmd.Length; i++)             {                 p.StandardInput.WriteLine(cmd[i]);             }             p.StandardInput.WriteLine("exit");             string strRst = p.StandardOutput.ReadToEnd();             //Debug.Print(strRst);             p.WaitForExit();             p.Close();             return strRst;         }         /// <summary>         /// 关闭进程         /// </summary>         /// <param name="ProcName">进程名称</param>         /// <returns></returns>         public static bool CloseProcess(string ProcName)         {             bool result = false;             var procList = new ArrayList();             foreach (Process thisProc in Process.GetProcesses())             {                 var tempName = thisProc.ToString();                 int begpos = tempName.IndexOf("(") + 1;                 int endpos = tempName.IndexOf(")");                 tempName = tempName.Substring(begpos, endpos - begpos);                 procList.Add(tempName);                 if (tempName == ProcName)                 {                     if (!thisProc.CloseMainWindow())                         thisProc.Kill(); // 当发送关闭窗口命令无效时强行结束进程                     result = true;                 }             }             return result;         }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部