views:

160

answers:

0

Hi, There are a number of questions about this and a number of possible causes and thus far ive tried them all with no success.

situation: i have an app that needs a db to work, onstartup it does a SmoApplication.EnumAvailableSqlServers(false) to get all the instances on the network, shows the user a dropdown, they pick one and i go connect to my db on that server. all good

problem: this works on my machine, the guys next to me and others. HOWEVER it doesnt work on one of the tech guys machines (and potentially others). we are all on the same network domain, physically connected (no wireless), all logged on with network user names, all running the same sql express 2005 sp3, though im using win7 the other guys are running xppro. MSSMS on all machines can see all the instances when you select "Browse for more".

yet on this one tech guys machine it lists his local instance (since its hardcoded to) and all the network servers, but has no instances names?

i.e.
.sqlexpress
server1
server2
server3
server4

but on my machine and others we get:
.sqlexpress
server1/sqlexpress
server2/sqlexpress
server3/sqlexpress
server4/sqlexpress

the code im using:

' .... some code 

' this populates my datatable 
dtServers = SmoApplication.EnumAvailableSqlServers(False) 

'.... some code 

'.... then later i ShowServers(...)  



Private dtServers As DataTable = Nothing
Private Sub ShowServers(ByVal SQLInstance As String)
    ' Create a DataTable where we enumerate the available servers
    cmbServer.Items.Clear()
    cmbDatabase.Items.Clear()

    ' If there are any (network listed) servers at all
    If (dtServers.Rows.Count > 0) Then
        ' Loop through each server in the DataTable
        For Each drServer As DataRow In dtServers.Rows
            ' Add the name to the combobox
            cmbServer.Items.Add(drServer("Server") & "\" & drServer("Instance"))
        Next
    End If

    'To make life simpler (add the local instance of sql express):
    cmbServer.Items.Add(SQLInstance)

    ' select first item
    If cmbServer.Items.Count > 0 Then
        cmbServer.SelectedIndex = 0
    End If
End Sub

now i know this uses udp and its not 100%, but how come his machine is 100% consistent in not showing remote instances, and mine is 100 consistent showing them. even a udl file on his desktop cant see them, regarldess of provider i choose to use? some of the suggestions are to uninstall and re-install, but that doesnt seem like a solution as i (and most others) can see the instances, but one guy cant. this suggests its not the remote sql server but rather the local machine.

Notes: ive tried firewall 1433, 1434 i can connect using a udl with full SERVERNAME\INSTANCENAME the browser service is running locally and on the remote machine ive tried stopping and restarting both the browser service on the local and remote machine.

UPDATE: this might be unrelated, but i have also just noticed that he cant see the extended properties of the server either, but i can. going to look at permissions on teh sql server for BUILTIN\Users and how it interacts with named logins (which i have)

Ideas?