因需要采用.Net获取指定计算机上的SqlServer实例信息,查阅相关资料,SqlServer 上的实例信息是由Sql Server Browser经1434端口返回给远程请求端的,哪位熟悉SSB通信协议的请给支个招,多谢

解决方案 »

  1.   

    如果简单需要一些信息,可以使用这些:http://blog.csdn.net/dba_huangzj/article/details/7524635
    和SERVERPROPERTY ()函数来获取,如果没开启SSB,那默认是经过1433端口。但是作为一个应用程序,我觉得没什么理由需要获取这些信息吧?容易丢失安全性。
      

  2.   

    我的需求很简单,就是使用C#来获取指定计算机上所开放的SqlServer实例信息,例如,打开SSMS,可以枚举出当前局域网中所有的SqlServe实例信息,但我需要的是根据计算机名称或者IP地址来获取其上的SqlServer信息,C#中可以使用SqlClientFactory来获取局域网中所有的SqlServer,但不能获取指定机器上的
      

  3.   

    我是想在C#开发的应用程序上,枚举出远程指定地址的计算机上的可使用的SQL Server,并进行远程访问
      

  4.   

    我有类似的代码,但是在公司电脑上。你看看这些有没有用:
     http://topic.csdn.net/u/20071224/16/803f028e-28ee-4443-be1f-5d578907ce6a.html
     http://blog.knowsky.com/198510.htm
      

  5.   

    我觉得你这贴到.net板块问会有用一点
      

  6.   

    .Net的我也发过,多谢楼上提供的信息,但你给的资料中是使用SQLDMO来获取,与.Net提供的SqlClientFactory差不多,都是获取局域网中所有实例信息,不知你用过PortQry没有,这玩意就是给服务端的1434端口发请求,我需要的就是看看咱这版块里有人接触过Portqry或者Sql Server Browser的协议没有昨天我找到个方法,自己写了UDP来发包,如下:byte[] buffer = { 02 };
    mUDPClient.Send ( buffer, 1, hostip, 1434 );用此种方法发02或03数据包就能收到SSB返回的请求信息,即包含ServerName,InstanceName,IsClustered,Version,tcp等信息,好歹已经实现了我的功能,但我必须确定请求协议到底是什么,发02或03这个到底是不是SQL Server所公布的协议,期待达人解答