我在本地系统上安装了SQL Server 2008,在.NET 4.5中安装了C#中的以下代码。
private Boolean ConnectDatabase()
{
if( !this.IsInitialized())
{
return false;
}
else
{
try
{
String ConnectionString = "User ID=" + this.DatabaseUsername + ";" +
"Password=" + this.DatabasePassword + ";" +
"Server=" + this.DatabaseHost + "," + this.DatabasePort + ";" +
"Database=" + this.DatabaseResource + ";";
this.DatabaseConnection = new SqlConnection(ConnectionString);
this.DatabaseConnection.Open();
return true;
}
catch (Exception e)
{
return false;
}
}
}
我可以在SSMS中连接到服务器,但是使用相同的凭据我无法在C#中建立连接。
连接字符串如下:
User ID=sa;Password=******;Server=CPUNAME\MSSQL,1433;Database=DBNAME;
CPUName
,DBName
和 ** 替换为适当的值。我也尝试过使用Windows凭据和各种不同的服务器端点,包括我的NB名称,Loopback IP,静态内部IP,等等等等。防火墙已关闭。服务器上启用了TCP。
我得到以下异常:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:TCP提供者,错误:0 - 无法建立连接,因为目标计算机主动拒绝它。)
有什么建议吗?
答案 0 :(得分:1)
您是否在SQL Server配置管理器中启用了协议?
参见Enable TCP/IP Network Protocol for SQL Server
[编辑]
没关系;我错过了“在服务器上启用TCP”部分;-)
然后问题变成:启用TCP / IP后,您重启 SQL服务器了吗?您需要重新启动SQL服务(see step 6)才能使这些更改生效。
同时验证您是否使用了正确的实例名称(您目前使用MSSQL
作为实例名称,这可能是SQLExpress
或其他内容。)
答案 1 :(得分:1)
必须运行许多服务才能进行连接,甚至是本地连接。其中一些(有帮助的)设置为"手动启动"默认情况下。您可能要检查的服务包括SQL Server,SQL Server代理和分布式事务处理协调器。