我在生产环境中有一个奇怪的错误,但在开发环境中却没有。
在我的开发环境中,使用Visual Studio 2010,我可以毫无问题地连接到Sql Server 2012。
当我将Windows Form应用程序复制到同一网络中的其他PC上时,出现“错误26:查找指定的服务器/实例错误”。

相同的应用程序在Sql Server 2008的旧数据库实例上运行良好。
我不知道要检查什么,从哪里开始!

编辑:另一个奇怪的行为是,如果我使用这样的代码,它将很好地工作

conn.Open()

dr = cmd.ExecuteReader()


但是如果我打开一个带有datagridview,数据集和BindingSource的表单,就停止工作!

最佳答案

this博客文章包含有关错误26的详细信息。

从帖子:


简而言之,我们收到此错误消息的原因是客户端
堆栈无法从SQL浏览器接收SSRP响应UDP数据包。
找出问题很容易。步骤如下:


确保您的服务器名称正确,例如,名称上没有错字。
确保您的实例名称正确,并且目标计算机上确实存在这样的实例。 [更新:某些应用程序将\转换为。如果不确定您的应用程序,请在连接字符串中同时尝试Server \ Instance和Server \\ Instance]
确保服务器计算机可以访问,例如DNS可以正确解析,您可以ping服务器(并非总是如此)。
确保SQL Browser服务正在服务器上运行。
如果在服务器上启用了防火墙,则需要将sqlbrowser.exe和/或UDP端口1434置于例外中。


完成步骤后,您应该不会看到此错误消息
不再。您可能仍然无法连接您的SQL Server,但是出现错误
消息应该有所不同,并且您现在遇到了其他问题。
[更新:如果仍然失败,则可以将server \ instance替换为
tcp:server \ instance和/或np:server \ instance,看看是否成功
使用TCP或NP协议。这样,您可以隔离问题
一点。 ]

07-24 09:51
查看更多