c#判断服务_c# 判断服务是否运行 - CSDN
精华内容
参与话题
  • 获取服务首先要添加引用:System.ServiceProcess 然后导入命名空间:using System.ServiceProcess;//获得服务集合 var serviceControllers = ServiceController.GetServices(); //遍历服务集合,打印服务名和服务...

    获取服务

    首先要添加引用:System.ServiceProcess 

    然后导入命名空间:using System.ServiceProcess;

    //获得服务集合
    var serviceControllers = ServiceController.GetServices();
    //遍历服务集合,打印服务名和服务状态
    foreach (var service in serviceControllers)
    {
        Console.WriteLine("ServiceName:{0}\t\tServiceStatus:{1}", service.ServiceName, service.Status);
    }

    启动服务

    //获取指定服务,若服务状态不是Runing就Start该服务
    var server = serviceControllers.FirstOrDefault(service => service.ServiceName == serviceName);
    if (server!=null && server.Status != ServiceControllerStatus.Running)
    {
        server.Start();
    }

    开一个线程定期检测服务状态

    static void Main()
    {
        ThreadPool.RegisterWaitForSingleObject(new AutoResetEvent(true), new WaitOrTimerCallback(TryStartRServer3), null, 30000, false);
    }
    private static void TryStartRServer3(object state, bool timedout)
    {
        var serviceControllers = ServiceController.GetServices();
        var server = serviceControllers.FirstOrDefault(service => service.ServiceName == "RServer3");
        if (server != null && server.Status != ServiceControllerStatus.Running)
        {
            server.Start();
        }
    }

    展开全文
  • c#通过socket判断服务器连接是否正常

    千次阅读 2017-02-06 20:26:28
    C#客户端连接服务器前先判断服务器连接是否正常  #region 采用Socket方式,测试服务器连接   ///  /// 采用Socket方式,测试服务器连接   ///  /// 服务器主机名或IP   /// 端口号   /// 等待...

    C#客户端连接服务器前先判断服务器连接是否正常

            #region 采用Socket方式,测试服务器连接 
            /// <summary> 
            /// 采用Socket方式,测试服务器连接 
            /// </summary> 
            /// <param name="host">服务器主机名或IP</param> 
            /// <param name="port">端口号</param> 
            /// <param name="millisecondsTimeout">等待时间:毫秒</param> 
            /// <returns></returns> 
            public static bool TestConnection(string host,int port,int millisecondsTimeout)
            {
                int millisecondsTimeout = 5;//等待时间
                TcpClient client = new TcpClient();
                try
                {
                    var ar = client.BeginConnect(host, port, null, null);
                    ar.AsyncWaitHandle.WaitOne(millisecondsTimeout);
                    return client.Connected;
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    client.Close();
                }
            }
            #endregion


    转载自:http://www.jb51.net/article/65019.htm

    展开全文
  • System.IO.File.Exist(filePath)在本地测试B服务器上文件是否存在 通过。放在A服务器上执行 测试B服务器文件是否存在失败。解决方案:远程主机共享盘映射到本地 #region 网络共享本地映射 public class ...

    System.IO.File.Exist(filePath)在本地测试B服务器上文件是否存在 通过。放在A服务器上执行 测试B服务器文件是否存在失败。

    解决方案:远程主机共享盘映射到本地

     #region 网络共享本地映射
     public class WNetHelper
     {
    
         [DllImport("mpr.dll", EntryPoint = "WNetAddConnection2")]
         private static extern uint WNetAddConnection2(NetResource lpNetResource, string lpPassword, string lpUsername, uint dwFlags);
         [DllImport("Mpr.dll", EntryPoint = "WNetCancelConnection2")]
         private static extern uint WNetCancelConnection2(string lpName, uint dwFlags, bool fForce);
         [StructLayout(LayoutKind.Sequential)]
         public class NetResource
         {
             public int dwScope;
             public int dwType;
             public int dwDisplayType;
             public int dwUsage;
             public string lpLocalName;
             public string lpRemoteName;
             public string lpComment;
             public string lpProvider;
    
         }
         /// <summary>  
         /// 为网络共享做本地映射
         /// </summary>  
         /// <param name="username">访问用户名(windows系统需要加计算机名,如:comp-1\user-1)</param>
         /// <param name="password">访问用户密码</param>  
         /// <param name="remoteName">网络共享路径(如:\\fs-01\暂存文件夹 (一定要路径,不可以带文件名全路径)</param> 
         /// <param name="localName">本地映射盘符</param>  
         /// <returns></returns>  
         public static uint WNetAddConnection(string username, string password, string remoteName, string localName)
         {
             NetResource netResource = new NetResource();
             netResource.dwScope = 2;
             netResource.dwType = 1;
             netResource.dwDisplayType = 3;
             netResource.dwUsage = 1;
             netResource.lpLocalName = localName;
             netResource.lpRemoteName = remoteName.TrimEnd('\\');
             uint result = WNetAddConnection2(netResource, password, username, 0);
             return result;
    
         }
         public static uint WNetCancelConnection(string name, uint flags, bool force)
         {
             uint nret = WNetCancelConnection2(name, flags, force);
             return nret;
         }
     }
     #endregion
    
    展开全文
  • C#中,我们可以利用以下方法判断Windows服务是否存在  private bool IsServiceExisted(string serviceName)  {  ServiceController[] services = ServiceController.GetServices();  foreach (Service...

     

    在C#中,我们可以利用以下方法判断Windows服务是否存在         

    private bool IsServiceExisted(string serviceName) 

    ServiceController[] services = ServiceController.GetServices(); 
    foreach (ServiceController s in services) 

    if (s.ServiceName == serviceName) 

    return true; 


    return false; 

    }


    解释一下上面的方法:
    ServiceController[]--表示Windows服务集合。
    ServiceController.GetServices()--检索本地计算机上的所有服务(设备驱动程序服务除外),返回System.ServiceProcess.ServiceController类型的数组,其中每个元素均与本地计算机上的一个服务关联

    注意:
    1,在使用ServiceController类前,我们必须引用命名空间System.ServiceProcess,而引用该命名空间,我们又必须在引用中添加System.ServiceProcess引用(在网上看到很多朋友说vs2008要从网上下载System.ServiceProcess.dll,其实不用,直接在vs2008的引用上右键- >添加引用,在.NET标签栏下就可以找到System.ServiceProcess了,选中直接确定就行了)

    2,ServiceController有两个名称,一个是DisplayName,一个是ServiceName:
    DisplayName-服务的友好名称,可用于标识该服务(就是我们在"控制面板"- >"服务"中看到的显示名称)
    ServiceName--服务进行标识的名称(这个才是服务的真正名称,也就是我们在"控制面板"- >"服务"中看到的服务名称)

    3,ServiceController中其它一些有用的方法与属性:
    1)Status属性:指示该服务现在是正在运行、已停止还是已暂停,或者启动、停止、暂停或继续命令被挂起。
    2)Pause()方法:暂停该服务。
    3)Start()方法:启动该服务。
    4)Stop()方法:停止该服务。

    有了这些方法,我们就可以方便的对找到的服务进行操作了,比如要启动服务:

    private void RunningService(string serviceName) 

    ServiceController[] services = ServiceController.GetServices(); 
    foreach (ServiceController s in services) 

    if (s.ServiceName == serviceName) 

    if (s.Status != ServiceControllerStatus.Running) 

    s.Start(); 


    }
    }

    展开全文
  • C#对Windows服务操作(注册安装服务,卸载服务,启动停止服务,判断服务存在)
  • C#判断端口是否连接

    千次阅读 2018-01-23 11:45:18
      //portNum :端口号  private bool isSetPort(int portNum)  {  string ipAddress = getIpAddress();  System.Net.IPAddress myIpAddress = IPAddress.Parse(ipAdd
  • C# 判断Socket断线重连

    千次阅读 2017-05-04 14:03:47
    定时器里面的事件 private void isConnendTimer_Tick(object sender, EventArgs e) { // 首先,Socket类的Connected属性只表示最后一次I/O操作的状态,如果这之后[连接的另一方]...所以通过个属性来判断是行不通的!
  • c#中怎样判断一个程序是否正在运行? 我写了两个程序,其中程序2想判断程序1是否正在运行(这两个程序没有任何联系) 谢谢啊 if(System.Diagnostics.Process.GetProcessesByName("要获取的程序在进程中的称").To...
  • public void CheckServerState(string ServiceName)  {  ServiceController[] service = ServiceController.GetServices();  bool isStart = false;  bool i
  • 使用C#调用外部Ping命令获取网络连接情况以前在玩Windows 98的时候,几台电脑连起来,需要测试网络连接是否正常,经常用的一个命令就是Ping.exe。感觉相当实用。现在 .net为我们提供了强大的功能来调用外部工具,并...
  • C#判断字符串是否为数字字符串

    千次阅读 2018-12-27 09:59:45
    C#判断字符串是否为数字字符串 在进行C#编程时候,有的时候我们需要判断一个字符串是否是数字字符串,我们可以通过以下两种方法来实现。 【方法一】:使用 try{} catch{} 语句。 我们可以在try语句块中试图将string...
  • C# 判断文件/文件夹 是否存在

    万次阅读 2019-01-16 10:41:47
    本章讲述:C#判断指定目录是否存在,判断文件是否存在,不存在则创建 1、判断文件夹是否存在 //spath:文件夹路径名 using System.IO; if (Directory.Exists(spath)) { } else { DirectoryInfo ...
  • 在很多项目启动的时候都需要连接到数据库,因此判断数据库服务器是否启动就十分必要了,如何判断数据库服务器是否启动呢? 可以通过判断数据库服务是否启动来判断,当然我看了下网上也有人说通过注册表也可以判断,...
  • 质数:是只有1和它本身两个约数的...下面是C#判断是否为质数的方法。 /// &lt;summary&gt; /// 高效判断是否为质数 /// &lt;/summary&gt; public static bool isPrime(long num) { if (n...
  • C#中如何判断线程当前所处的状态

    万次阅读 多人点赞 2014-11-20 17:09:00
    C#中,线程对象Thread使用ThreadState属性指示线程状态,它是带Flags特性的枚举类型对象,因此判断线程当前的状态必须用bitmask按位运算来达到判断目的,不能直接使用相等来判断
  • c# 判断 字符是否是中文汉字

    千次阅读 2019-05-30 15:07:28
    c# 判断 字符是否是中文汉字 public static bool IsChinese(char c){ return 0x4e00 <= c && c <= 0x9bb; }
  • C#判断文件夹存在指定文件

    千次阅读 2018-09-28 09:43:46
    C#判断文件夹是否有存在,再判断文件夹内是否有指定文件
  • c#判断ComboBox是否为空

    千次阅读 2018-10-26 10:28:49
    c#判断ComboBox是否为空 ComboBox.Text.trim().Length!=0; 用起来是最好的。
  • C# 判断是否图片格式

    千次阅读 2016-10-18 01:04:58
    1. 通过文件的扩展名来判断 ...2.通过C#自身提供的方法来进行判断(判断某种确定的图片类型)bool isJPG = false; System.Drawing.Image img = System.Drawing.Image.FromFile(filesName); if(img.RawFormat.Equals(Syst
1 2 3 4 5 ... 20
收藏数 193,787
精华内容 77,514
关键字:

c#判断服务