visual studio servidor remoto publicar net example crear asp aplicacion c# asp.net web-services iis

c# - studio - ¿Por qué AppDomain.CurrentDomain.GetAssemblies() no devuelve ensamblados dependientes en Global.asax bajo ciertas condiciones?



web service asp net c# example (1)

EDITAR : Esto se tituló previamente "Comportamiento de la aplicación inicial diferente entre el reinicio de IIS y la inicialización de la aplicación". Cambié el título para expandir la pregunta de IIS / Inicialización de la aplicación porque el comportamiento observado se relaciona con AppDomain.CurrentDomain.GetAssemblies();

Estoy usando el módulo de Inicialización de aplicaciones de IIS para calentar un servicio de asmx wed.

He implementado un código de calentamiento para asegurar la inicialización de la aplicación de la aplicación con éxito el servicio mymx de JIT en el evento Global.asax Application_Start. Esto utiliza System.Runtime.CompilerServices.RuntimeHelpers.PrepareMethod () para recorrer todos los ensamblados de la aplicación (también recoge todas las dependencias del ensamblado) para garantizar que la primera llamada al servicio sea lo más rápida posible.

Cuando observo este comportamiento utilizando "net stop w3svc & net start w3svc", puedo ver (mediante el registro) que TODOS los ensamblajes están JIT y la primera llamada al servicio es rápida como se esperaba.

Sin embargo, cuando el grupo de aplicaciones se recicla automáticamente en su cronograma configurado (03:00:00) el registro muestra que solo los ensamblados a los que se hace referencia directamente están JIT, no las dependencias que también se encuentran en la carpeta.

Esto está ocasionando una sobrecarga inaceptable en la primera llamada al servicio.

App Init se desempeña exactamente como se esperaba en todos los demás aspectos, pero ¿por qué el ciclo de IIS del grupo de aplicaciones solo compila JIT los conjuntos directamente referenciados y no sus dependencias?