加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – .NET未检测到任何SQL Server实例

发布时间:2020-12-15 08:47:23 所属栏目:百科 来源:网络整理
导读:我使用.NET 4.5.1和SQL Server 2012 Express在 Windows 8.1设备上开发了一段时间的C#/ SQL Server应用程序.这一切都完美无瑕.最近,Visual Studio 2015已经发布,我决定升级.我还决定升级我的SQL Server 2012,所以我支持所有内容,卸载它并安装了SQL Server 201
我使用.NET 4.5.1和SQL Server 2012 Express在 Windows 8.1设备上开发了一段时间的C#/ SQL Server应用程序.这一切都完美无瑕.最近,Visual Studio 2015已经发布,我决定升级.我还决定升级我的SQL Server 2012,所以我支持所有内容,卸载它并安装了SQL Server 2014 Express.配置完所有内容并恢复数据库备份后,所有内容仍在本地工作,因为数据库连接数据仍存在于存储的应用程序设置中.

当我在另一台设备上测试应用程序时,我发现它无法再连接到SQL Server实例,并且无法使用它来检测它

System.Data.DataTable instances = SqlDataSourceEnumerator.Instance.GetDataSources();

应用程序也无法检测到我的开发机器上的SQL Server实例,我认为这很奇怪,因为它在本地运行.但是,其他几个设备可以检测SQL Server,因此我认为它不是防火墙相关程序. SQL引擎服务和浏览器服务都是活动的.

我决定升级到Windows 10,重置它(干净安装,没有安装任何SQL Server程序)并再次运行我的应用程序,因为我的网络中有其他运行SQL Server的计算机,希望它能检测到这些.它没有. GetDataSources()方法在瞬间返回一个空的DataTable,而其他设备需要几秒钟来检测实例并返回正确的列表.

更愚蠢的是ODBC数据源管理器确实检测到这些网络实例,让我觉得它是一个与.NET相关的程序.

简介:两个设备不检测任何SQL Server实例(甚至是本地),而网络中的其他设备则检测到.

解决方法

我决定使用 this ODBC implementation,因为它正常工作,并且可以实现异步/等待更新,因此它不会阻止UI.

在选择这个实现之前,我还使用SqlDataSourceEnumerator类进行了另一个项目,它完美地运行.其Target框架属性设置为.NET Framework 2.0.我发现当.NET目标版本为3.5或更低时,SqlDataSourceEnumerator会给出预期的结果(在我的机器上). .NET实现中的某些内容可能会随着时间的推移而发生变化,导致它在某些特定条件下停止工作.

编辑:在我的机器上我再次安装了SQL Server 2012,一切(除了检测,将使用ODBC)再次正常工作.我要感谢大家的意见.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读