C# 从Windows 10在网络中发现SQL Server

C# 从Windows 10在网络中发现SQL Server,c#,sql,.net,sql-server,network-programming,C#,Sql,.net,Sql Server,Network Programming,形势 我们正在销售一个系统,它可以合成对象并将其可视化。 该系统由带嵌入式软件的独立硬件和可安装在Windows-PC上的.net应用程序组成 net应用程序将本地文件系统上的数据可视化并存储在文件夹/文件结构中 由于一些客户希望使用来自不同地方的数据,我们决定将存储系统切换到MSSQL 软件现在可以在“服务器模式”下运行,这意味着它可以连接到硬件并在MSSQL服务器上存储数据,或者在“客户端模式”下运行,这意味着它可以连接到MSSQL服务器以可视化数据 MSSQL服务器可以安装在与我们的“服务

形势

我们正在销售一个系统,它可以合成对象并将其可视化。 该系统由带嵌入式软件的独立硬件和可安装在Windows-PC上的.net应用程序组成

net应用程序将本地文件系统上的数据可视化并存储在文件夹/文件结构中

由于一些客户希望使用来自不同地方的数据,我们决定将存储系统切换到MSSQL

软件现在可以在“服务器模式”下运行,这意味着它可以连接到硬件并在MSSQL服务器上存储数据,或者在“客户端模式”下运行,这意味着它可以连接到MSSQL服务器以可视化数据

MSSQL服务器可以安装在与我们的“服务器模式软件”相同的PC上,也可以安装在公司网络内的任何其他服务器上

职能部门

启动软件时,需要定义存储数据的MSSQL服务器。由于此地址可以更改,并且我们不希望客户处理IP地址,因此我们希望客户能够从组合框中选择服务器

问题

我们试过了

public void findInstances(out List<string> v_server)
    {
        v_server = new List<string>();
        SqlDataSourceEnumerator l_instance = SqlDataSourceEnumerator.Instance;
        System.Data.DataTable l_table = l_instance.GetDataSources();
        foreach (System.Data.DataRow l_row in l_table.Rows)
        {
            v_server.Add((string)l_row["ServerName"] + "\\" + (string)l_row["InstanceName"]);
        }
        return;
    }
Windows PowerShell内部不返回任何内容

参数

开发人员计算机已安装Windows 10和MSSQL server 2008 R2 U3

MSSQL Management Studio在我们的网络中找到9个实例

应用程序在.NET4.0中

开发人员计算机上的UDP 1434和TCP 1433已打开

PowerShell和应用程序作为用户和管理员进行了测试

我们试图将应用程序设置为“完全信任”,没有任何更改

问题

为什么我们在网络中找不到任何实例?有什么建议吗

更新

在Windows 7计算机上远程调试软件时,表不是空的。这似乎是Windows 10或系统配置问题。。。我还在找

更新2

问题似乎来自Win10中包含的.NET4.6。关于这个话题有一个很好的解释

对我们来说,这意味着我们目前不会使用SQL浏览,因为客户可能会使用.net 4.6

由于这不是问题的解决方案,我不会将其标记为已解决。

[System.Data.Sql.SqlDataSourceEnumerator]::Instance.GetDataSources()