连接到SQL Server Express时连接字符串无效

时间:2018-03-07 08:20:25

标签: sql-server system.data

我尝试了在互联网上找到的每一个变体。一切。而且每次我都得到同样的例外:

  

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

2 个答案:

答案 0 :(得分:3)

问题是(这并不是很清楚)UWP需要一个能力才能运行该代码。我在某处读到了你需要的企业身份验证。由于我的程序和服务器位于封闭的专用网络中,因此启用了专用网络(客户端和服务器)

您需要的是 Internet(客户端和服务器)。可悲的是,异常并没有暗示这一点,而且UWP上的SqlClient要求它工作的事实几乎没有提到或者没有足够的压力,所以你不会忽视它。

.Net Standard issue中找到的解决方案。

答案 1 :(得分:0)

首先尝试使用SQL Server Management Studio连接到此数据库。 如果您收到相同的错误,则表示服务器没有(或不仅仅)使用您的连接字符串存在问题。 以下是一些可能性:

1-从此部分删除'tcp:':builder.DataSource =“tcp: \ SQLEXPRESS“;

2-在服务器上停止SQL Server服务(SQL Server或SQL Server浏览器)。 激活go服务并启动已停止的服务。

3-可能是服务器不接受远程连接: 在这种情况下,在服务器上打开SQL Server配置管理器

enter image description here

并激活tcp ip。

在此操作之后,您应该重新启动SQL Server服务。

告诉我它是否适合你。