Una routine funzionante su Windows 7 non funziona su Windows 10

Mauro Schivalocchi 25 Punti di reputazione
2025-05-06T18:35:12.8333333+00:00

Ho una routine che mi individua tutti i server SQL installati nel mio sistema.

vb.net 2019
#Region "ENUMERAZIONE SERVER"
    Public Shared tblServer As Data.DataTable
    ''' <summary>
    ''' Ricerca server Sql nella rete
    ''' </summary>
    ''' <remarks>
    ''' I server Sql/Express trovati nella rete vengono elencati in tabella "SqlDataSources"
    ''' colonne  ServerName,InstanceName,IsClustered,Version
    ''' </remarks>
    Public Shared Function SqlEnumerator() As Integer
        'If My.Computer.Network.IsAvailable = False Then Return tblServer.Rows.Count 'se la rete non è disponibile esce
        Try
            Console.WriteLine("    ENUMERAZIONE ISTANZE SQL IN RETE")
            ' Ricerca tutti i server nella rete e ne rileva le istanze
            Dim instance As Sql.SqlDataSourceEnumerator = Sql.SqlDataSourceEnumerator.Instance
            ' Trasferisce i dati dei server trovati nella tabella SqlDataSources
            tblServer = instance.GetDataSources()
            For Each RowServer As DataRow In tblServer.Rows
                Console.Write("      ServerName\InstanceName:") : Console.Write(RowServer("ServerName"))
                Console.Write("\") : Console.Write(RowServer("InstanceName"))
                Console.Write(" IsClustered:") : Console.Write(RowServer("IsClustered"))
                Console.Write(" Version:") : Console.WriteLine(RowServer("Version"))
            Next
            Console.WriteLine("      Server trovati " & tblServer.Rows.Count)
            Return tblServer.Rows.Count
        Catch ex As Exception
            Console.WriteLine(ex.Message)
            Return tblServer.Rows.Count
        End Try
    End Function
#End Region

Questa routine Funziona perfettamente su un sistema Windows7 con SQL Server 2005 ovvero, l'azione della routine mi carica sulla Tabella SqlDataSource tutti i server trovati con le relative proprietà. Se nessun server viene trovato, la funzione restituisce un valore Zero che utilizzo per inibire l'accesso alla selezione di una finestra per database SQL.
Al contrario, su un sistema Windows 10 con SQL SERVER 2019 la routine mi restituisce sempre un valore 'zero' ovvero non trova nessun server.
Nessun errore viene evidenziato, infatti la Try/Catch non mi segnala alcun errore.
è possibile che la routine non sia compatibile?

Grazie per la risposta
Tecnologie per sviluppatori | Visual Studio | Altro
0 commenti Nessun commento
{count} voti

Risposta

Le risposte possono essere contrassegnate come risposte accettate dall'autore della domanda. Ciò consente agli utenti di sapere che la risposta ha risolto il problema dell'autore.