一个应用程序突然无法再连接到数据库。其他应用程序连接得很好

时间:2016-09-07 10:05:43

标签: c# sql-server-2008

我的一个应用程序不再连接到数据库服务器。该应用程序已经生产了两年,没有任何变化,而且一直有效。

我正在使用C#2010和MS SQL Server 2008 R2

  • 我收到错误:
  

“建立与SQL Server的连接时发生与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是否正确以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)“

  • 内部例外: “访问被拒绝”

  • 使用完全相同的代码,连接字符串,数据库&数据库服务器,我能够与其他应用程序连接,没有任何错误。

  • 我可以在服务器和数据库上使用SSMS进行连接。

  • 查询(如果复制到SSMS)运行没有问题。

CODE:

public DataTable QueryRetrieval(string sqlQuery)
    {
        // SP Command
        SqlConnection Conn = new SqlConnection(this.connectionString);
        this.Cmd = new SqlCommand(sqlQuery, Conn);
        Cmd.CommandType = CommandType.Text; // Type of command

        // Declarations (for scope purposes)
        SqlDataAdapter Adapter = new SqlDataAdapter(Cmd);

        DataTable DtResultSet = new DataTable();

        try
        {
            // Run the query
            Conn.Open();
            Adapter.Fill(DtResultSet);

            Conn.Close();

            // Return datatable
            return DtResultSet;
        }
        catch (Exception Ex)
        {
            // Edit the message, rethrow exception
            throw new Exception(
                "DataAccessor.QueryDataTable: Failed to run query '" + sqlQuery + "'\n\n"
                + "Error message: \n--------------\n\n" + Ex.Message);
        }
        finally
        {
            // Remove the SQL command
            Cmd.Dispose();
            Cmd = null;

            // Remove the SQL data adapter
            Adapter.Dispose();
            Adapter = null;
        }

    }

连接字符串:“Server = MyServer; Database = MyDB; Trusted_Connection = True;” (我替换了名字。)

程序在Conn.Open()上失败;当代码命中该行时,我必须等待20或30秒然后抛出异常。

服务器上未安装任何更新。 我已经尝试重启服务器(整个服务器,而不是服务)。

是否有人知道可能导致这种情况发生的原因?

2 个答案:

答案 0 :(得分:0)

根据我在这种情况下的经验,当内部异常显示"访问被拒绝"时,可以确保运行程序的帐户无法访问数据库。

建议你检查你是否冒充任何帐户,以及是否有权访问DB。[在我的情况下,用于模拟的帐户的密码(在web.config中)已被更改,它给了我这个错误]

答案 1 :(得分:0)

我最近遇到过类似的问题。运行特定项目无法连接,但其他项目和应用程序可以。我重新启动,问题消失了。尝试重新启动。