• 测试数据库服务器是否可用


    在Sql连接字符串中设置Connect Timeout无效,只能通过Socket去判断

    代码如下:

            /// <summary>
            
    /// 测试数据库服务器是否可用
            
    /// </summary>
            
    /// <param name="ip">服务器IP</param>
            
    /// <param name="port">服务器端口,一般是1433</param>
            
    /// <param name="timemout">设置超时时间,毫秒</param>
            
    /// <returns>如果数据库可用返回true,否则返回false</returns>
            static bool TestConn(string ip, int port, int timemout)
            {
                
    using (TcpClient client = new TcpClient())
                {

                    ManualResetEvent mre 
    = new ManualResetEvent(false);
                    client.BeginConnect(ip, port, 
    delegate(IAsyncResult res)
                    {
                        
    if (client.Connected)
                        {
                            mre.Set();
                            Console.WriteLine(
    "123");
                        }
                    }, 
    null);
                    ThreadPool.QueueUserWorkItem(
    delegate(object obj) { Thread.Sleep(timemout); mre.Set(); });
                    mre.WaitOne();
                    
    if (!client.Connected)
                    {
                        
    return false;
                    }
                    
    return true;
                }
            }

    测试代码:

     
                DateTime begin = DateTime.Now;
                Console.WriteLine(TestConn(
    "192.168.1.99"14332000));
                Console.WriteLine(DateTime.Now.Subtract(begin).TotalSeconds);
     

     

  • 相关阅读:
    《生命摆渡人》 读书笔记 读后感
    《饮食术》 读书笔记 读后感
    《天生有罪》读后感 读书笔记
    《内在动机》 读后感 读书笔记
    《从疾病到人心》读后感 读书笔记
    Python 入门书籍文档推荐及学习笔记总结
    JavaScript 入门书籍推荐及学习笔记总结 -- 《JavaScript权威指南》
    JavaScript中window.onload事件与document.ready事件的区别
    CentOS 7 中安装 MySQL 8 以及 MySQL 常用操作
    Python 杂记:argparse 模块
  • 原文地址:https://www.cnblogs.com/mxw09/p/2116005.html
Copyright © 2020-2023  润新知