加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 客户端数据库的连接挂起应用程序

发布时间:2020-12-15 08:41:12 所属栏目:百科 来源:网络整理
导读:在我的应用程序上,我需要连接客户端数据库(SqlServer),看看我们是否可以连接. 这些是来自web.config的连接字符串(值不是这样,我更改了ip,user和pwd) add name="ConnectionStringLibracom" connectionString="Data Source=192.168.1.45SqlServer2008;Initial
在我的应用程序上,我需要连接客户端数据库(SqlServer),看看我们是否可以连接.
这些是来自web.config的连接字符串(值不是这样,我更改了ip,user和pwd)
<add name="ConnectionStringLibracom" connectionString="Data Source=192.168.1.45SqlServer2008;Initial Catalog=xxx;user=xxx;pwd=xxx;Application Name=MES"
      providerName="System.Data.SqlClient" /> (MINE)
<add name="ConnectionStringMigplus" connectionString="Data Source=999.99.999.99;Initial Catalog=xxx;user=xxx;pwd=xxx"
          providerName="System.Data.SqlClient" /> (CLIENT)

但这段代码挂起了我的整个应用程序(当我说它挂起时,我的意思是它不允许我的应用程序连接到我们的数据库).我在Load事件的Default.aspx上执行它:

protected void Page_Load(object sender,EventArgs e)
{
    if (!TestaIntegracaoErpMigplus())
    {
        lblMensagemIntegracao.Visible = true;
        Session["Integracao"] = false;
    }
    else
        Session["Integracao"] = true;
}

protected static bool TestaIntegracaoErpMigplus()
{
    string connectionStringMigplus = WebConfigurationManager.ConnectionStrings["ConnectionStringMigplus"].ConnectionString;
    bool ret = false;

    using (SqlConnection Conn = new SqlConnection(connectionStringMigplus))
    {
        try
        {
            Conn.Open();
            if (Conn.State == ConnectionState.Open)
            {
                ret = true;
            }
        }
        catch (SqlException)
        {
            ret = false;
        }
    }

    return ret;
}

@EDIT:问题不在于我是否可以连接到服务器,问题是:当我尝试连接到该数据库时,我的asp.net网站冻结到其他页面的新请求

解决方法

您不需要检查ConnectionState

如果连接无法打开an exception is throw

也许此检查导致您的问题

protected static bool TestaIntegracaoErpMigplus()
{
    bool ret = true;    

    try
    {
        string connectionStringMigplus = WebConfigurationManager.ConnectionStrings["ConnectionStringMigplus"].ConnectionString; 
        using (SqlConnection Conn = new SqlConnection(connectionStringMigplus))
        {
            Conn.Open();
        }
    }
    catch (Exception)
    {
        ret = false;
    }
    return ret;
}

————- UPDATE ——————

尝试降低连接字符串中的connection timeout:

<add name="ConnectionStringMigplus" connectionString="Data Source=999.99.999.99;Initial Catalog=xxx;user=xxx;pwd=xxx;Connection Timeout=5" providerName="System.Data.SqlClient" />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读