【发布时间】:2018-03-07 08:20:25
【问题描述】:
我尝试了可以在互联网上找到的每一种变体。一切。而且每次我得到同样的异常时:
System.Data.SqlClient.SqlException: '建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:TCP 提供者,错误:25 - 连接字符串无效)'
有了这个奇怪的内部异常:
SocketException:操作成功完成
当我直接指定端口时,我会得到这个奇妙的异常:
试图以访问权限禁止的方式访问套接字
无论如何,它都不起作用。此外,我希望在测试时打开 MS SQL Management Studio(这是唯一可能阻塞端口的进程)。
那么为什么它不起作用? Management Studio 可以毫无问题地与IP\InstanceName 连接。为什么System.Data.Sql.SqlConnection 类不能这样做?
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "tcp:***.***.***.***\\SQLEXPRESS";
builder.InitialCatalog = "MyDB";
builder.Password = "MyPass";
builder.UserID = "ID";
builder.IntegratedSecurity = false;
_connection = new SqlConnection(builder.ToString());
仅供参考:我使用的是 ConnectionStringBuilder,所以应该没有任何问题。服务器名称、实例名称、SQL 用户和密码都有效,我确实明确设置了Integrated Security = False。
【问题讨论】:
-
请分享您的连接字符串
-
你能分享你的连接字符串吗?
-
给你。添加代码。
-
这里有一些你可以尝试的。在您计算机上的任意位置创建一个
.TXT文件并将其扩展名重命名为.UDL现在双击该文件,您将看到ADO 窗口以使用test connection按钮构建一个连接字符串。使用此窗口有时会提供其他/更好的错误消息,如果您使此连接正常工作,则可以在 notepath 中打开UDLfile,您将在其中看到可以使用的完整连接字符串 -
还是不行。我已经试过那个字符串了。 C# 中的 SqlException 而 ADO 窗口确实连接成功...