Lentidão no .netTiers/Enterprise Library

No projecto que estou actualmente utilizo o .netTiers para gerar o código das varias camadas da aplicação. O .netTiers utiliza o motor do CodeSmith para gerar código, e a sua arquitectura foi desenvolvida sobre a Enterprise Library.

A uma semana atraz surgiu um problema com o arranque inicial da aplicação que demorava cerca de 30seg. a abrir a arrancar, depois de muito "Googlar" verifiquei que o problema devia-se à Enterprise Library não estar instalada nos servidores de staging, isto é, não basta copiar as .dll da Enterprise Library, é necessário instalar-la nos servidores onde a aplicação vai correr.

A Enterprise Library no seu arranque procura instanciar Performance Counters, e caso estes não existam na maquina onde a aplicação corre ocorrem excepções, o que geram lentidão no arranque de qualquer aplicação.

Uma das soluções (mais rápida) é instalar a Enterprise Library nos servidores de staging, a outra solução é:

  • Abrir a solução da Enterprise Library no Visual Studio
  • Abrir as propriedades do projecto Common
  • Na pasta Configuration Properties seleccionar a opção Build
  • Na propriedade Conditional Compilation remover as seguintes Constantes:
    ;USEWMI;USEEVENTLOG;USEPERFORMANCECOUNTER
  • Recompilar a Enterprise Library e substituir as dlls

Leave a Comment

(requerido) 
(requerido) 
 
(opcional)
(requerido) 
If you can't read this number refresh your screen
Enter the numbers above: