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

Sql server 连接到SQL Server Express时连接字符串无效,sql-server,system.data,Sql Server,System.data,我尝试了在互联网上找到的每一种变体。一切。但每次我都会遇到同样的例外: System.Data.SqlClient.SqlException:'建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:TCP提供程序,错误:25-连接字符串无效)' 除了这个奇怪的内在例外: SocketException:操作已成功完成 当我直接指定端口时,我最终遇到了一个奇妙的异常: 试图

我尝试了在互联网上找到的每一种变体。一切。但每次我都会遇到同样的例外:

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用户和密码有效,我确实明确设置了
integratedsecurity=False

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

1-从此部件中删除“tcp:”:builder.DataSource=“tcp:\SQLEXPRESS”

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

3-可能是服务器不接受远程连接: 在本例中,在服务器上打开SQL server配置管理器

并激活tcp ip

执行此操作后,应重新启动SQL Server服务


告诉我它是否适合您。

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

1-从此部件中删除“tcp:”:builder.DataSource=“tcp:\SQLEXPRESS”

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

3-可能是服务器不接受远程连接: 在本例中,在服务器上打开SQL server配置管理器

并激活tcp ip

执行此操作后,应重新启动SQL Server服务

告诉我它是否适用于您。

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

您需要的是Internet(客户端和服务器)。不幸的是,这些异常并没有暗示这一点,UWP上的SqlClient要求这一点在任何地方都没有提到,或者强调得不够,所以您不会忽视它

在这个问题上找到了解决方案。

问题在于(这还不是很清楚),UWP需要一种能力来运行代码。我在某个地方读到,您需要企业身份验证,而这不是唯一的一个。由于我的程序和服务器位于封闭的专用网络中,我启用了专用网络(客户端和服务器)

您需要的是Internet(客户端和服务器)。不幸的是,这些异常并没有暗示这一点,UWP上的SqlClient要求这一点在任何地方都没有提到,或者强调得不够,所以您不会忽视它


找到解决方案。

请共享您的连接字符串。您可以共享您的连接字符串吗?给您。添加了代码。以下是您可以尝试的内容。在计算机上的任意位置创建一个
.TXT
文件,并将其扩展名重命名为
.UDL
现在双击该文件,您将获得ADO窗口,通过
测试连接按钮构建连接字符串。使用此窗口有时会提供其他/更好的错误消息,如果您使此连接正常工作,则可以在notepath中打开
UDL
文件,在该文件中您将看到一个完整的连接字符串,您可以使用它,但它仍然不起作用。我已经试过了。C#中的SqlException,而ADO窗口连接成功…请共享您的连接字符串您可以共享您的连接字符串吗?给您。添加了代码。以下是您可以尝试的内容。在计算机上的任意位置创建一个
.TXT
文件,并将其扩展名重命名为
.UDL
现在双击该文件,您将获得ADO窗口,通过
测试连接按钮构建连接字符串。使用此窗口有时会提供其他/更好的错误消息,如果您使此连接正常工作,则可以在notepath中打开
UDL
文件,在该文件中您将看到一个完整的连接字符串,您可以使用它,但它仍然不起作用。我已经试过了。C中的SqlException#而ADO窗口确实成功连接…正如我所说,我可以使用
IP\Instance
与Management Studio连接。这显然是.Net方面的一个问题。端口设置为允许在服务器防火墙中使用。例如:我们通过实体框架连接到另一个程序中的服务器。在那里,它确实工作得很好。此外:我正在.Net Standard 2.0上开发一个UWP应用程序。您是否尝试从此部分中删除“tcp:”?builder.DataSource=“tcp:**.**\\SQLEXPRESS”;对我什么都试过了。