Erro estranho, muito estranho, ASP.NET/C# System.IndexOutOfR
Pessoal estou começando a ficar com medo, acontece que o site da empresa onde trabalho de repente para de funcionar e simplismente da um erro loko na tela como por exemplo: [b:758d1edd54]System.IndexOutOfRagenException[/b:758d1edd54]
O estranho é que o site esta normal, e de repente, para!.
Para voltar eu vou no servidor e digito no cmd do windows: iireset /restart.
Pronto ele volta a funcionar, o problema é que somos uma faculdade e o acesso ao site é bem grande, uma média de 400 a 1000 visitas ao dia e isso está me dando dor de cabeça.
Outra coisa, quando o erro aparece na tela e eu dou um f5 aparece o mesmo erro porem num arquivo dirente com linhas diferentes.
Pô sou programador PHP há 6 anos e faz +/- 1 ano e meio que estou no asp.net /C e não tenho a minima ideia do que esteja acontecendo, e porque que quando reinicio o server ele volta?.
Outro detalhe é que eu já fiz a troca de servidor, tenho 4 windows 2003 server aqui na Faculdade e ja passei pros 4 e em todos eles, o problema aparece.
O Servidor atual é um IBM xeon, 4gb de ram, e uma HD SAS 320 gb.
Enfim acredito que não seja o servidor meu problema, acho que em algum trecho do codigo eu esteja comendo bola, e pelo fato de ser algum trecho que não seja executado a todo momento, ele da esse erro de epoca em epoca, mas não sei como acha-lo(se for mesmo esse o problema).
Tirei 3 prints de 3 erros diferentes que deram agora a pouco.
Por favor pessoal me ajude, estou desesperado!!!!!!!!
Erro1: [img]http://www.fkb.br/erros/erro1.bmp[/img]
Erro2: [img]http://www.fkb.br/erros/erro2.bmp[/img]
Erro2: [img]http://www.fkb.br/erros/erro3.bmp[/img]
O estranho é que o site esta normal, e de repente, para!.
Para voltar eu vou no servidor e digito no cmd do windows: iireset /restart.
Pronto ele volta a funcionar, o problema é que somos uma faculdade e o acesso ao site é bem grande, uma média de 400 a 1000 visitas ao dia e isso está me dando dor de cabeça.
Outra coisa, quando o erro aparece na tela e eu dou um f5 aparece o mesmo erro porem num arquivo dirente com linhas diferentes.
Pô sou programador PHP há 6 anos e faz +/- 1 ano e meio que estou no asp.net /C e não tenho a minima ideia do que esteja acontecendo, e porque que quando reinicio o server ele volta?.
Outro detalhe é que eu já fiz a troca de servidor, tenho 4 windows 2003 server aqui na Faculdade e ja passei pros 4 e em todos eles, o problema aparece.
O Servidor atual é um IBM xeon, 4gb de ram, e uma HD SAS 320 gb.
Enfim acredito que não seja o servidor meu problema, acho que em algum trecho do codigo eu esteja comendo bola, e pelo fato de ser algum trecho que não seja executado a todo momento, ele da esse erro de epoca em epoca, mas não sei como acha-lo(se for mesmo esse o problema).
Tirei 3 prints de 3 erros diferentes que deram agora a pouco.
Por favor pessoal me ajude, estou desesperado!!!!!!!!
Erro1: [img]http://www.fkb.br/erros/erro1.bmp[/img]
Erro2: [img]http://www.fkb.br/erros/erro2.bmp[/img]
Erro2: [img]http://www.fkb.br/erros/erro3.bmp[/img]
Abreufkb
Curtidas 0
Respostas
Ara.es
25/09/2009
abreuFKB, esse erro costuma acontecer quando se tenta acessar um array, ou qualquer outro objeto que é acessado por indice, e esse indice é menor que zero ou maior que o maximo permitido.
Verifique se em alguma parte da programação, alguma array ou outro objeto está sendo acessado incorretamente.
Flw!
Verifique se em alguma parte da programação, alguma array ou outro objeto está sendo acessado incorretamente.
Flw!
GOSTEI 0
Katiuscia Schröer
25/09/2009
abreuFKB não sei se ja conseguiu a solução do seu problema, mas viu eu ja tive um problema parecido. Eu tinha uns sites q eram bastante acessados e do nada a pagina parava de funcionar.
Só que o meu problema estava na web.config, na string de conexão com o banco. Eu estava usando o banco sql server 2005.
abrc...
Só que o meu problema estava na web.config, na string de conexão com o banco. Eu estava usando o banco sql server 2005.
abrc...
GOSTEI 0
Abreufkb
25/09/2009
Katy, eh exatamente isso, eu estou com Sql Server 2005 e estou fazendo conexao via web.config.
Na sexta feira a noite, eu criei um usuario para o banco do Site com o nome ´FKBSite´, onde o mesmo tem acesso somente ao banco do Site, e experimentei fazer a conexao com esse usuario, pois antes eu usava o usuario ´sa´.
Fiquei super feliz pois o site ficou o final de semana todo sem cair, porém hoje veio a decepção, ele caiu de novo, simplismente parou, com aquele erro loko que mencionei anteriormente.
Reiniciei o IIS e até agora o site esta no ar, acho que não adiantou muita coisa a minha tentativa.
Você disse que tinha um problema na sua string de conexão, vou postar a minha pra vc dar uma olhada, de repente ela esta errada também.
<add name=´ConexaoUm´ connectionString=´Server=localhost; Database=FKBsite; user=FkbSite; password=gr@ndia2005;´
providerName=´System.Data.SqlClient´ />
Pessoal, obrigado pela atenção, se precisar de qualquer coisa estou disponivel
Na sexta feira a noite, eu criei um usuario para o banco do Site com o nome ´FKBSite´, onde o mesmo tem acesso somente ao banco do Site, e experimentei fazer a conexao com esse usuario, pois antes eu usava o usuario ´sa´.
Fiquei super feliz pois o site ficou o final de semana todo sem cair, porém hoje veio a decepção, ele caiu de novo, simplismente parou, com aquele erro loko que mencionei anteriormente.
Reiniciei o IIS e até agora o site esta no ar, acho que não adiantou muita coisa a minha tentativa.
Você disse que tinha um problema na sua string de conexão, vou postar a minha pra vc dar uma olhada, de repente ela esta errada também.
<add name=´ConexaoUm´ connectionString=´Server=localhost; Database=FKBsite; user=FkbSite; password=gr@ndia2005;´
providerName=´System.Data.SqlClient´ />
Pessoal, obrigado pela atenção, se precisar de qualquer coisa estou disponivel
GOSTEI 0
Katiuscia Schröer
25/09/2009
Abreu, tenta colocar na sua string de conexão isso que está em negrito, se não me enago depois que coloquei isso não deu mais problema.
<add name=´Teste´ connectionString=´[b:9a7889cbd4]Min Pool Size=5;Max Pool Size=250;[/b:9a7889cbd4]Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true´ providerName=´System.Data.SqlClient´ />
Espero que ajude.
t+
<add name=´Teste´ connectionString=´[b:9a7889cbd4]Min Pool Size=5;Max Pool Size=250;[/b:9a7889cbd4]Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true´ providerName=´System.Data.SqlClient´ />
Espero que ajude.
t+
GOSTEI 0
Katiuscia Schröer
25/09/2009
Abreu, tenta colocar na sua string de conexão isso que está em negrito, se não me enago depois que coloquei isso não deu mais problema.
<add name=´Teste´ connectionString=´[b:02a0f0ee4d]Min Pool Size=5;Max Pool Size=250;[/b:02a0f0ee4d]Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true´ providerName=´System.Data.SqlClient´ />
Espero que ajude.
t+
<add name=´Teste´ connectionString=´[b:02a0f0ee4d]Min Pool Size=5;Max Pool Size=250;[/b:02a0f0ee4d]Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true´ providerName=´System.Data.SqlClient´ />
Espero que ajude.
t+
GOSTEI 0
Abreufkb
25/09/2009
Pessoal agora com menos frequencia o problema ainda esta ocorrendo.
Não sei mais o que fazer, preciso muito de ajuda, estou desesperado, pensando seriamente em iniciar um projeto para passar essa minha aplicação para php.
Não posso ficar com a aplicação dando pau assim, do nada o maluco para de funcionar, ai tenho q me conectar remotamente no server e reiniciar o IIS.
Por favor se alguem puder me ajudar!!!!!
Não sei mais o que fazer, preciso muito de ajuda, estou desesperado, pensando seriamente em iniciar um projeto para passar essa minha aplicação para php.
Não posso ficar com a aplicação dando pau assim, do nada o maluco para de funcionar, ai tenho q me conectar remotamente no server e reiniciar o IIS.
Por favor se alguem puder me ajudar!!!!!
GOSTEI 0
Abreufkb
25/09/2009
Hoje por volta das 22:00 (dia 05 out 2009) o erro voltou a aparecer, do nada me ligaram e disseram que o site estava fora do ar.
Entrei no server e reinicei o IIS, resultado: tudo voltou ao normal.
Não sei mais o que fazer estou desesperado, ninguem sabe o que é isso, não é possivel q ninguem nunca tenha tido um problema parecido.
Entrei no server e reinicei o IIS, resultado: tudo voltou ao normal.
Não sei mais o que fazer estou desesperado, ninguem sabe o que é isso, não é possivel q ninguem nunca tenha tido um problema parecido.
GOSTEI 0
Signori
25/09/2009
Kra vc está utilizado DataReader para manipulação dos dados?
pelo que vi na imagem 3 que vc postou:
´while reader.read´
Como seu site tem muitos acessos por dia, eis o problema, DataReader lota a memória do servidor e não suporta vários acessos, podes verificar que quando o site trava, o processo w3wp.exe do servidor está utilizando grande quantidade de memória, é por causa do DataReader.
Falo isso porque já enfrentei esse problema.
para aplicações deste porte não é recomendável o uso de Reader.
Uma solução que pode te auxiliar a curto prazo, seria evitar o máximo o acesso ao BD, pois assim utilizará menos o componente, também dê um ´.dispose´ e ´.free´ no seu DataReader nas consultas.
Solução definitiva: Eliminar o DataReader do teu projeto, implementando uma classe de conexão (DataAcess) e já que trabalha com SQL Server, podes utilizar o componente padrão para conexão.
Se tiver dúvida pode me mandar email.
pelo que vi na imagem 3 que vc postou:
´while reader.read´
Como seu site tem muitos acessos por dia, eis o problema, DataReader lota a memória do servidor e não suporta vários acessos, podes verificar que quando o site trava, o processo w3wp.exe do servidor está utilizando grande quantidade de memória, é por causa do DataReader.
Falo isso porque já enfrentei esse problema.
para aplicações deste porte não é recomendável o uso de Reader.
Uma solução que pode te auxiliar a curto prazo, seria evitar o máximo o acesso ao BD, pois assim utilizará menos o componente, também dê um ´.dispose´ e ´.free´ no seu DataReader nas consultas.
Solução definitiva: Eliminar o DataReader do teu projeto, implementando uma classe de conexão (DataAcess) e já que trabalha com SQL Server, podes utilizar o componente padrão para conexão.
Se tiver dúvida pode me mandar email.
GOSTEI 0
Abreufkb
25/09/2009
Caro signori, acho que vc tem toda razão, eu uso muito DataReader na minha aplicação.
A conexão eu criei uma classe que a faz.ex.:
[b:1477b0cf0a]public static SqlConnection Instance
{
get
{
if (instance == null)
{
instance = new SqlConnection(ConfigurationManager.ConnectionStrings[´ConexaoUm´].ConnectionString);
}
return instance;
}
}
[/b:1477b0cf0a]
Depois eu a chamo de qualquer lugar da minha aplicação,(dbConnection.Instantece.Open()).
Me diga uma coisa, será que seria legal eu trocar os DataReaders por DataAdapter?
A conexão eu criei uma classe que a faz.ex.:
[b:1477b0cf0a]public static SqlConnection Instance
{
get
{
if (instance == null)
{
instance = new SqlConnection(ConfigurationManager.ConnectionStrings[´ConexaoUm´].ConnectionString);
}
return instance;
}
}
[/b:1477b0cf0a]
Depois eu a chamo de qualquer lugar da minha aplicação,(dbConnection.Instantece.Open()).
Me diga uma coisa, será que seria legal eu trocar os DataReaders por DataAdapter?
GOSTEI 0
Signori
25/09/2009
abreuFKB,
acho interessante fazer esta troca, não custa tentar.
Otra coisa que pode ajudar, se vc não o faz ainda, é vc fechar esta conexão após cada ida ao banco. ´connection.close´.
Vc usa StoredProcedures? Também melhoram muito o desempenho.
Qualquer dúvida estamos aí...
acho interessante fazer esta troca, não custa tentar.
Otra coisa que pode ajudar, se vc não o faz ainda, é vc fechar esta conexão após cada ida ao banco. ´connection.close´.
Vc usa StoredProcedures? Também melhoram muito o desempenho.
Qualquer dúvida estamos aí...
GOSTEI 0