public void Test_Explicit_Discovery()
        {
            var servers = MyServers.GetSqlServers();

            foreach (var server in servers)
            {
                Console.WriteLine($" * {server}");
            }
        }
Example #2
0
        public static void Initialize()
        {
            if (Initialized)
            {
                return;
            }
            Initialized = true;
            if (MasterConnectionString != null)
            {
                return;
            }
            var servers = MyServers.GetSqlServers();

            foreach (var server in servers)
            {
                try
                {
                    using (SqlConnection con = new SqlConnection(server))
                    {
                        var  man        = con.Manage();
                        var  isSysAdmin = (man.FixedServerRoles & FixedServerRoles.SysAdmin) != 0;
                        bool isLinux    = man.HostPlatform == "Linux";
                        // if (!man.IsLocalDB && isSysAdmin)
                        if (isLinux || true)
                        {
                            MasterConnectionString = server;
                            Console.WriteLine("Discovered SQL Server: {0}, Ver is {1}", MasterConnectionString, man.ShortServerVersion);
                            return;
                        }
                    }
                }
                catch (Exception ex)
                {
                    continue;
                }
            }

            throw new InvalidOperationException("Local Sql Express or LocalDB 2014+ (or above) with SysAdmin permission for the current user not found");
        }