Artigo: 319947 - Última revisão: domingo, 13 de Maio de 2007 - Revisão: 3.5 Erro: Vários reinícios de aplicação do ASP.NET ocorrem cada um a cinco minutos
SintomasQuando muitos ficheiros .aspx, .ascx ou .asmx novos são propagados para um servidor, o servidor pode relatar reinícios da aplicação sucessivas durante algum tempo mais tarde. Este problema poderá aparecer de várias formas diferentes:
CausaPor predefinição, quando actualiza ficheiros menos de 15 no ASP.NET, os ficheiros são compilados e carregados na memória com as versões antigas dos ficheiros compilados. Esta é uma funcionalidade do .NET common language runtime denominado execução lado a lado. No entanto, as versões antigas do código compilado permanecem na memória indefinidamente com execução lado a lado. Quando actualiza ficheiros muitos (por exemplo, mais de 30 ficheiros), se não reiniciar a aplicação para limpar as versões antigas da memória, pode ser utilizada demasiada memória. Para contornar este problema, o ASP.NET tem uma funcionalidade no qual a aplicação é reiniciada automaticamente após um número específico de ficheiros de actualização. O reinício deverá ocorrer apenas uma vez por toda a lista de ficheiros actualizados. Após o reinício do aplicação, versões antigas não deverão residir na memória. Por este motivo, não deverá ter a aplicação ser reiniciado para recompilar novas versões dos ficheiros. No entanto, este problema ocorre quando carrega vários novos .aspx ou .ascx ficheiros para o servidor (por exemplo, 61 ficheiros). Novamente o descarregamento de servidor a aplicação quando os primeiros 15 ficheiros são compiladas e sempre que outra ficheiros 15 novamente compiladas até que o servidor atinge 61. Isto resulta em quatro Reiniciar aplicação mesmo que só seja necessário. ResoluçãoPara evitar um reinício automático baseado no número de ficheiros actualizados, defina o atributo numRecompilesBeforeAppRestart no ficheiro Machine.config do predefinido de 15 para um número que é maior do que o número de ficheiros que vão ser actualizados entre reinícios da aplicação planeada. Se definiu numRecompilesBeforeAppRestart para um número grande, poderá reiniciar a aplicação manualmente para libertar memória que utilizem as versões antigas de assemblagens. Nota : se ASP.NET consome muita memória, o ASP.NET reinicia essa aplicação automaticamente. Se estiver a actualizar um número de ficheiros conhecido e se pretender reiniciar a aplicação automaticamente, defina numRecompilesBeforeAppRestart para um número que será apenas menor que o número de ficheiros que vão ser actualizados. Isto provoca um reinício única aplicação com um pequeno número de assemblagens antigos na memória. Por exemplo, definir numRecompilesBeforeAppRestart da seguinte forma: Ponto Da SituaçãoA Microsoft confirmou que este erro ocorre nos produtos da Microsoft listados no início deste artigo. Mais InformaçãoPoderá ver este comportamento com código de ASP (Active Server Pages) incorporada no qual o código ASP executável incluído no ficheiro .aspx ou .ascx. No entanto, não verá este comportamento quando utiliza o modelo de código para criar a aplicação do ASP.NET. No modelo de código, o código compilado é sob a forma de uma biblioteca de ligação dinâmica (DLL) e é colocado no directório bin para essa aplicação. Isto provoca o reinício da aplicação, para que não a ver o comportamento exacto que é mencionado neste artigo. ReferênciasPara obter mais informações sobre o <processmodel> elemento, consulte a documentação do MSDN: http://msdn2.microsoft.com/en-us/library/7w2sway1(vs.71).aspx
(http://msdn2.microsoft.com/en-us/library/7w2sway1(vs.71).aspx)
Para obter informações adicionais sobre as funcionalidades do ASP.NET, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft: 305140
(http://support.microsoft.com/kb/305140/EN-US/
)
INFO: Plano de ASP.NET
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 319947
(http://support.microsoft.com/kb/319947/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções de Artigos |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo