我正在尝试实现GUI,以便从网络中可用的那些选择MS SQL Server实例。
首先,我尝试了众所周知的方法,例如SmoApplication.EnumAvailableSqlServers()和SqlDataSourceEnumerator.Instance.GetDataSources()。它们都不够我,因为我想控制搜索超时,默认超时为30秒。
然后我发现another approach:通过LAN广播UDP数据报以从实时SQL Server实例获取响应。我可以设置我想要的任何超时,似乎设置1秒超时就足够了。
这里唯一的问题是这个方法不会返回与库方法相同数量的记录。看起来扫描网络并不是这些方法执行的唯一操作。我使用ILDasm查看了源代码,但我只是发现功能的主要部分隐藏在本机代码的某处。
有人能解释一下这些方法会发生什么吗?
提前致谢