我在尝试手动连接到网络上的sql server时遇到问题。
我有一个带有conn字符串的Web API,工作正常,我有一个VS2015 winforms项目,我设置为使用VS工具连接来测试conn,这也可以正常工作。
但是,当我尝试通过SQLconnection进行连接时,它会失败并说服务器无法找到或无法访问。
所以继承测试代码...
string connectionString = @"Data Source=test1\test1;Initial Catalog=my_test;Integrated Security=True;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
// Create the Command and Parameter objects.
SqlCommand command = new SqlCommand("", connection);
// Open the connection in a try/catch block.
// Create and execute the DataReader, writing the result
// set to the console window.
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}\t{2}",
reader[0], reader[1], reader[2]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
现在我真的不关心结果或任何我只需要建立连接的东西。我无法弄清楚为什么它会抛出此错误,当我的Web API工作时,用于连接到DB的VS工具也可以正常工作。
我已经检查了服务器并启用了命名管道,以确保。
有什么想法吗?
编辑:我抓到的错误......
{"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)"}
尝试打开连接约15秒后发生。 问题是我试过的连接字符串是通过SQL工具使用的完全相同的字符串,我这样做了所以我知道我有一个有效的字符串。
ODBC连接也会出现相同的消息。
我从我的机器上检查过我可以收听端口1433,但它说服务器没有收听。 然而,看看服务器它设置为动态端口,范围为任何41934,所以我不知道为什么它说它不听,即使它是动态端口
EDIT2:嗯,必须是权限或驱动程序...只是尝试完全相同的代码并立即工作......
这是潜入我所感受到的未知领域。如果没有找到解决方案,可能会要求删除问题
答案 0 :(得分:1)
我认为我看到了问题:
string connectionString = @"Data Source=test1\test1;Initial Catalog=my_test;Integrated Security=True;";
集成安全性用于本地登录,您可以在数据库中创建一个帐户并将连接字符串更改为:
string connectionString = @"Data Source=test1\test1;Initial Catalog=my_test;User id=<Username>;Password=<Password>;";
我希望这有帮助!