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