Является ли использование единого для подключения хорошей идеей на веб-сайте ASP.NET
В настоящее время я использую синглтон в моем веб-приложении, так что всегда есть только одно соединение с базой данных.
Я хочу знать, если этохорошая идея, потому что сейчас яУ меня возникли проблемы с этой ошибкой:
Тайм-аут истек. Время ожидания истекло до получения соединения из пула. Это могло произойти из-за того, что все пулы подключений использовались и был достигнут максимальный размер пула.
Другим важным моментом является то, что мой веб-сайт в настоящее время находится в разработке, и мало кто заходит на него, поэтому я нене понимаю, почему я получаю эту ошибку!
Вот код моего синглтона:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
///
/// This class take care of all the interaction with the database
///
public class DatabaseFacade
{
SqlConnection m_conn = null;
string m_csLanguageColumn;
//Variables that implement the Singleton pattern
//Singleton pattern create only one instance of the class
static DatabaseFacade instance = null;
static readonly object padlock = new object();
///
/// Private constructor. We must use Instance to use this class
///
private DatabaseFacade()
{
}
///
/// Static method to implement the Singleton
///
public static DatabaseFacade Instance
{
get
{
lock (padlock)
{
if (instance == null)
{
instance = new DatabaseFacade();
}
return instance;
}
}
}
///
/// Do the connection to the database
///
public void InitConnection(int nLanguage)
{
m_conn = new SqlConnection(GetGoodConnectionString());
try
{
//We check if the connection is not already open
if (m_conn.State != ConnectionState.Open)
{
m_conn.Open();
}
m_csLanguageColumn = Tools.GetTranslationColumn(nLanguage);
}
catch (Exception err)
{
throw err;
}
}
}
Спасибо за вашу помощь!