Array
(
)

Projeto ASP.NET com WebService erro conexão do pool

Gebram Seguros
   - 13 ago 2011

Olá Pessoal,
Tenho um projeto web na locaweb e outro na minha rede que é um WebService. Tem ocorrido erro de conexão de pool ao acessar algumas consultas o erro segue abaixo: 
"Tempo limite expirado. O período de tempo limite foi atingido antes que fosse obtida uma conexão do pool. Isso pode ter ocorrido porque todas as conexões do pool estavam em uso e o tamanho máximo do pool foi atingido."
Alguem saberia me dizer o que é isso o como faço para soluionar isso ?

Leonardo Wintrich
   - 15 ago 2011

Coloque mais detalhes sobre o problema.Qual banco de dados?Qual forma de acesso?Depois que da o erro uma vez vc consegue fazer outras consultas sem reiniciar a aplicação?Coloque exemplo de um codigo de consulta.
Dessa forma fica mais facil pra tentarmos ajudar.

Gebram Seguros
   - 16 ago 2011

Vou colocar os detalhes, conforme pedido para ter maiores informações:
Banco de Dados: SQL Server (está na minha rede interna da própria empresa)
Qual forma de acesso: O acesso está sendo através do WebService que como o banco de dados ele também está na rede interna da empresa, nele está configurado no web.config os dados para o banco de dados interno.
Depois que da o erro uma vez vc consegue fazer outras consultas sem reiniciar a apolicação ? Não, só de pois de alguns minutos, ou se antes eu for no IIS e atualizar novamente o fonte do projeto.
obs: não sei se esse minutos tem haver com uma configuração que coloquei no web.config do projeto webService dentro do provider um timeout de 15.
exemplo: <connectionStrings> <add name="ConnectionString" connectionString="Data Source=xx.xx.xx.xx;Initial Catalog=banco;Persist Security Info=True;User ID=sa;Password=********" providerName="System.Data.SqlClient"/> </connectionStrings>
Exemplo de uma Consulta:
Service.asmx
    [WebMethod]    public List<Cliente> ListarCliente(string _cgccpf)    {        try        {            DaoCliente objDaoCliente = new DaoCliente();            return objDaoCliente.ListarCliente(_cgccpf);        }        catch (Exception ex)        {            throw new Exception(ex.Message);        }    }
DaoCliente.cs:
        public List<Cliente> ListarCliente(int codSegurado)        {            SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
            string q = "";
            q = "Select TOP 1 INT_CODSEGURADO,CHR_NOME,INT_CODATIVIDADE," +                "CHR_NUMERORG,CHR_ORGAOEXP,CHR_NUMEROCNH," +                "DAT_VALIDADECNH,CHR_TIPOPESSOA,CHR_CGCCPF," +                "CHR_SEXO,CHR_ESTADOCIVIL,DAT_NASCIMENTO," +                "CHR_EMAIL,CHR_CATEGORIACNH,DAT_PRIMEIRACNH," +                "DAT_EXPEDICAORG, DAT_ALTERACAO, CHR_CODPROFISSAO " +                "From TabSegurado WITH(NOLOCK) " +                "WHERE int_codsegurado = @codSegurado";
            SqlCommand cmd = new SqlCommand(q, cn);            cmd.CommandType = CommandType.Text;
            cmd.Parameters.AddWithValue("@codSegurado", codSegurado);            try            {                cn.Open();                SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                List<Cliente> clientes = new List<Cliente>();
                while (dr.Read())                {                    Cliente p = new Cliente();
                    p.CodSegurado = (int)dr["INT_CODSEGURADO"];                    p.Nome = dr["CHR_NOME"].ToString();                    p.Atividade = new CNAE20();                    p.Atividade.SubClasse = dr["INT_CODATIVIDADE"].ToString();                    p.NumeroRG = dr["CHR_NUMERORG"].ToString();                    p.OrgaoExpeditor = dr["CHR_ORGAOEXP"].ToString();                    p.NumeroCNH = dr["CHR_NUMEROCNH"].ToString();                    if (dr["DAT_VALIDADECNH"].ToString() != "") p.DataValidadeCNH = Convert.ToDateTime(dr["DAT_VALIDADECNH"]);                    else p.DataValidadeCNH = DateTime.Parse("1/1/1753");                    p.TipoPessoa = Convert.ToChar(dr["CHR_TIPOPESSOA"]);                    p.CGCCPF = dr["CHR_CGCCPF"].ToString();                    p.Sexo = Convert.ToChar(dr["CHR_SEXO"]);                    p.EstadoCivil = Convert.ToChar(dr["CHR_ESTADOCIVIL"]);                    if (dr["DAT_NASCIMENTO"].ToString() != "") p.DataNascimento = Convert.ToDateTime(dr["DAT_NASCIMENTO"]);                    else p.DataNascimento = DateTime.Parse("1/1/1753");                    p.Email = dr["CHR_EMAIL"].ToString();                    p.CategoriaCNH = dr["CHR_CATEGORIACNH"].ToString();                    if (dr["DAT_PRIMEIRACNH"].ToString() != "") p.DataPrimeiraCNH = Convert.ToDateTime(dr["DAT_PRIMEIRACNH"]);                    else p.DataPrimeiraCNH = DateTime.Parse("1/1/1753");                    if (dr["DAT_EXPEDICAORG"].ToString() != "") p.DataExpedicaoRG = Convert.ToDateTime(dr["DAT_EXPEDICAORG"]);                    else p.DataExpedicaoRG = DateTime.Parse("1/1/1753");                    if (dr["DAT_ALTERACAO"].ToString() != "") p.DataAlteracao = Convert.ToDateTime(dr["DAT_ALTERACAO"]);                    else p.DataAlteracao = DateTime.Parse("1/1/1753");                    p.Profissao = new CNAE20();                    p.Profissao.SubClasse = dr["CHR_CODPROFISSAO"].ToString();
                    clientes.Add(p);                }
                return clientes;            }            catch (SqlException ex)            {                throw new Exception("Erro ao tentar Listar\n" + ex.Message);            }            catch (Exception ex)            {                throw new Exception(ex.Message);            }
        }
Obrigado por tentar me ajudar!