using AUTS.Services.Manager; using Face.Domain.Entities; using Face.Domain.ViewModels; using Face.Services.Cache; using Face.Services.DBUtility.Common; using Face.Web.Areas.App.Models; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.IO; using System.Linq; using System.Net; using System.Net.Security; using System.Net.Sockets; using System.Runtime.Remoting.Lifetime; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading; using System.Web; using System.Web.Mvc; namespace Face.Web.Areas.App.Controllers { public class HomeController : BaseController { // GET: App/Home public ActionResult Index() { ViewBag.errorcout = GetErrorcount(); return View(); } public ActionResult SetCustomerID(int customerID) { //返回实体 ReturnResult result = new ReturnResult(); #region 变更缓存 //System.Web.HttpContext.Current.Session[onUserOperationSessionName] = customerID; //CacheHelp.GetUserOperation(Umodel.UserName, customerID); #endregion result.Status = 200; result.Message = "变更数据库成功"; return Json(result); } public int GetErrorcount() { List pmsinfo = SqlSugarBase.Db.Queryable().ToList(); return pmsinfo.Count(); } [HttpPost] public ActionResult closeProcess(Condition data) { //LogHelp.WriteExceptionLog(""); Logs.WriteLog("重启服务"); string art = process.GetProcessKill(); return Json("closeProcess"); } [HttpPost] public ActionResult openProcess(Condition data) { process.GetProcess(); return Json("openProcess"); } } } public static class process { //开启进程方法 public static string GetProcess() { //找到所有进程 Process[] ps = Process.GetProcesses(); DataTable ProcessTable = new DataTable(); ProcessTable.Columns.Add("Name", typeof(string)); ProcessTable.Columns.Add("Start Time", typeof(DateTime)); ProcessTable.Columns.Add("CPU %", typeof(TimeSpan)); ProcessTable.Columns.Add("Threads", typeof(string)); ProcessTable.Columns.Add("Session ID", typeof(int)); ProcessTable.Columns.Add("Unique ID", typeof(int)); ProcessTable.Columns.Add("RAM", typeof(float)); ProcessTable.Columns.Add("Machine", typeof(string)); ProcessTable.Columns.Add("Priority", typeof(int)); foreach (Process Process in ps) { try { //找到具有指定名称的进程 // 换成你的exe名字 去掉exe if (!Process.ProcessName.ToUpper().Contains("TESTWEBSOCKET")) continue; string pName = Process.ProcessName; DateTime pStartTime = Process.StartTime; TimeSpan pProcTime = Process.TotalProcessorTime; string pThreads = Process.Threads.ToString(); int pSessionId = Process.SessionId; int pId = Process.Id; long pRam = Process.VirtualMemorySize64; string pMachineName = Process.MachineName; int pPriority = Process.BasePriority; //杀死进程 Process.Kill(); ProcessTable.Rows.Add(pName , pStartTime , pProcTime , pThreads , pSessionId , pId , pRam , pMachineName , pPriority); } catch (Exception e) { } } // 换成你的exe路径 //Process.Start(@"C:\FaceConsole\bin6\Release\TestWebSocket.exe"); Process.Start(@"D:\NewGitRepos\TestWebSocket\TestWebSocket\bin\Release\TestWebSocket.exe"); return JsonConvert.SerializeObject(ProcessTable); } /// /// 关闭进程 /// /// public static string GetProcessKill() { try { //找到所有进程 Process[] ps = Process.GetProcesses(); DataTable ProcessTable = new DataTable(); ProcessTable.Columns.Add("Name", typeof(string)); ProcessTable.Columns.Add("Start Time", typeof(DateTime)); ProcessTable.Columns.Add("CPU %", typeof(TimeSpan)); ProcessTable.Columns.Add("Threads", typeof(string)); ProcessTable.Columns.Add("Session ID", typeof(int)); ProcessTable.Columns.Add("Unique ID", typeof(int)); ProcessTable.Columns.Add("RAM", typeof(float)); ProcessTable.Columns.Add("Machine", typeof(string)); ProcessTable.Columns.Add("Priority", typeof(int)); foreach (Process Process in ps) { try { //找到具有指定名称的进程 // 换成你的exe名字 去掉exe if (!Process.ProcessName.ToUpper().Contains("FACESTEST")) continue; string pName = Process.ProcessName; DateTime pStartTime = Process.StartTime; TimeSpan pProcTime = Process.TotalProcessorTime; string pThreads = Process.Threads.ToString(); int pSessionId = Process.SessionId; int pId = Process.Id; long pRam = Process.VirtualMemorySize64; string pMachineName = Process.MachineName; int pPriority = Process.BasePriority; //杀死进程 Process.Kill(); ProcessTable.Rows.Add(pName , pStartTime , pProcTime , pThreads , pSessionId , pId , pRam , pMachineName , pPriority); } catch (Exception e) { Logs.WriteLog("重启服务错误" + e); } } // 换成你的exe路径 Process.Start(@"C:\FaceTest\bin\Release\FacesTest.exe"); } catch (Exception e) { Logs.WriteLog(e.ToString()); } return JsonConvert.SerializeObject("ok"); } //Process.Start(@"D:\NewGitRepos\TestWebSocket\TestWebSocket\bin\Release\TestWebSocket.exe"); }