连接到远程SQL Server(SQLExpress)时出现“网络相关”错误,但在Visual Studio中使用服务器资源管理器时仍能正常工作

c0vxltue  于 2022-11-28  发布在  SQL Server
关注(0)|答案(1)|浏览(151)

我使用的是NET 6.0,但无法正常工作。
我正在尝试使用以下连接:

var builder = new System.Data.SqlClient.SqlConnectionStringBuilder
{
    DataSource = $"{ip}\\SQLEXPRESS, 1433",
    InitialCatalog = "xxx",
    UserID = "user",
    Password = "pass"
};
SqlConnection thisConnection = new SqlConnection();
thisConnection.ConnectionString = builder.ConnectionString;
thisConnection.Open();

但是,我一直得到这个
建立与SQL Server的连接时发生与网络相关的或特定于示例的错误。找不到服务器或无法访问服务器。请验证示例名称是否正确以及SQL Server是否配置为允许远程连接。(提供程序:TCP提供程序,错误:0 -无法建立连接,因为目标计算机主动拒绝连接。)
在Netframework 4.8上使用完全相同的代码是有效的。有人愿意解释一下为什么吗?使用与上面相同的计算机,如果我在Visual Studio中使用服务器资源管理器,那么连接是成功的。使用Python也是有效的。我尝试使用服务器资源管理器连接字符串中的连接字符串,但仍然不起作用。使用服务器资源管理器时,该连接字符串中的连接字符串是有效的:
数据源=xxx.xxx.xx.xx\sqlexpress;初始目录=数据库;持久安全信息=True;用户ID=sysdba;密码=****
下面是所浏览的已连接服务器:

和属性:

然后道:

SqlConnection conn = new SqlConnection();
conn.ConnectionString = @"Data Source = xxx.xxx.xx.xx\sqlexpress; Initial Catalog = database; Persist Security Info = True; User ID = sysdba; Password = ******";
conn.Open();

但仍无法连接。
我还按照Cannot Connect to Server - A network-related or instance-specific error中的建议将端口设置为1433,并重新启动服务

但仍无法使用SqlConnection()进行连接(使用服务器资源管理器仍能正常工作)。
我做错了什么?SQL Server使用SQL Server身份验证,没有Windows凭据。我使用IP\sqlexpress连接。这似乎不是网络相关的问题,就像我在其他回答的问题中看到的那样,因为它在Visual Studio和Python中使用服务器资源管理器工作。

eeq64g8w

eeq64g8w1#

我也遇到了同样的问题(Net 5.0)。您可以使用Connected Services,它是Visual Studio中的一组工具,可以帮助您连接到数据库。我相信这可能是一种不同的方法,但它应该可以工作,因为Visual Studio将创建连接字符串(与每个服务器资源管理器相同)。
https://learn.microsoft.com/en-us/visualstudio/data-tools/add-new-connections?view=vs-2022https://learn.microsoft.com/en-us/visualstudio/azure/overview-connected-services?view=vs-2022显示器

相关问题