0

我在本地系统上安装了 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 名称、环回 IP、静态内部 IP、等等等等。防火墙已关闭。服务器上启用了 TCP。

我得到以下异常:

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

有什么建议么?

4

2 回答 2

1

有许多服务必须运行才能连接,即使是在本地也是如此。其中一些(有帮助)默认设置为“手动启动”。您可能要检查的服务包括 SQL Server、SQL Server 代理和分布式事务协调器。

于 2013-03-26T16:43:36.760 回答
1

您是否在 SQL Server 配置管理器中启用了协议?

请参阅为 SQL Server 启用 TCP/IP 网络协议

[编辑]
没关系;我错过了“在服务器上启用了 TCP”部分;-)
然后问题就变成了:启用 TCP/IP 后是否重新启动了SQL 服务器?您需要重新启动 SQL 服务(参见步骤 6)才能使这些更改生效。

还要验证您使用的是正确的实例名称(您当前使用MSSQL的是实例名称,这可能是SQLExpress什么)。

于 2013-03-26T16:21:35.997 回答