无法在本地连接到SQL Server

时间:2013-03-26 16:19:19

标签: c# sql-server

我在本地系统上安装了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;

CPUNameDBName ** 替换为适当的值。我也尝试过使用Windows凭据和各种不同的服务器端点,包括我的NB名称,Loopback IP,静态内部IP,等等等等。防火墙已关闭。服务器上启用了TCP。

我得到以下异常:

  

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:TCP提供者,错误:0 - 无法建立连接,因为目标计算机主动拒绝它。)

有什么建议吗?

2 个答案:

答案 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代理和分布式事务处理协调器。