En mi caso, estaba viendo el mensaje [AspNetCompiler] error ASPRUNTIME error message: Value cannot be null.
en TeamCity.
En los registros construcción completa, el mensaje más útil en la parte inferior fue:
error ASPRUNTIME : The pre-application start initialization method InitializePreStart on type MyApplication.MvcApplication threw an exception with the following error message: Value cannot be null.
como resulta que tenía una excepción ser arrojado por un método que había definido usando PreApplicationStartMethod:
[assembly: System.Web.PreApplicationStartMethod(typeof(MyApp.MvcApplication), "InitializePreStart")]
namespace PrintFleet.PFE.RestService
{
public class MvcApplication : System.Web.HttpApplication
{
//....
public static void InitializePreStart()
{
// exception thrown here
}
}
}
La causa en mi caso era que mi método de preinicio era cargar configuraciones del registro, y no existían en el servidor de compilación (pero sí en mi máquina, así que funcionó cuando lo construí). No tengo idea de por qué los proyectos de despliegue web ejecutan este código.
Envolví todo el asunto en un intento ..catch que registra un mensaje fatal (que en mi aplicación va tanto al archivo de registro como al registro de eventos de Windows). En construcciones, realmente no me importa si falla, ya que no necesita hacer nada. En las instalaciones reales, si falta la configuración, la aplicación no funcionará (y el registro explica por qué).
Ahora, para el OP parece que el problema está en el activador web. No me sorprendería que exista un método que use webactivor en la carpeta App_Start que arroja el error, que hace que parezca que proviene de WebActivator. Verifique primero, ajuste las cosas en try..catch si es necesario. También es posible que haya un error en el webactivator en sí.
Así que porque me encontré con esta publicación mientras investigaba el problema, con suerte esta información es útil al menos para alguien más.
TL; DR: los proyectos de implementación web ejecutan los métodos ApplicationPreStart cuando compilan. Asegúrese de tener try..catch blocks alrededor de cualquier código ejecutado en el tiempo de preinicio o de lo contrario puede manejar la situación donde se ejecuta el código durante el tiempo de compilación en su servidor (s) de compilación, fuera del entorno IIS/hosting.
¿Alguna de las respuestas funcionó para usted? –