我遇到此问题,并且已经阅读了许多提供解决方案的链接/博客/等(打开端口1433,确保SQLBrowser正在运行,使用默认的sqlexpress,而不是命名实例等)。我正在等待IT人员对其进行深入研究,因为我对该服务器没有任何权限,与此同时,我注意到了一些事情:
为什么某些程序(VS,SSMS)可以连接,但.Net应用程序不能连接?我什至创建了一个测试UDL文件,该文件显示了良好的连接。我在服务器上没有凭证可以实际执行任何操作,所以我只是希望还有其他可以帮助您的项目。
我使用了连接字符串生成器,所以我知道它不是一个错字,但是现在我的连接字符串是:
Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=PMTools;Data Source=APP1\PMTOOLSET;Initial File Name=""
以前我正在使用:
Data Source=APP1\PMTOOLSET;Initial Catalog=PMTools;Integrated Security=True
产生相同的错误26-指定服务器/实例时出错。
我认为Linq To SQL需要用于SQL Server的.NET Framework数据提供程序,而SSMS和VS则不需要,并且正是这一点与能够找到SQL的命名实例有关Server Express。这意味着如果没有管理员访问数据库所在服务器的权限,我真的无能为力。
有什么机会我想念什么吗?我应该重新做这个WPF应用程序,以便改用Entity Framework吗(也就是说,EF的运气会更好)吗?还是可以使用另一个框架(例如VS使用的框架)来成功连接到数据库?还是我只等IT人员在服务器端修复所有问题?
更新: 我已经使用ADO.NET(实体框架)创建了一个小型测试应用程序,并成功连接到服务器。 。 。我将令我头疼的LinqToSQL版本(通过ObservableCollection)映射到同一数据表,并成功填充了该表。因此,似乎服务器允许EF使用的DbContext类(版本6)很好,但是LinqToSQL数据提供程序类还需要其他内容。有了这些信息,除了转换为EntityFramework之外,我还能做些什么吗?