2011-10-10 27 views
6

Tengo varias aplicaciones web que hacen uso de paquetes que usan WebActivator. En mi máquina local con IIS 7.5 Express, todo funciona bien si lo pruebo en las configuraciones Release o Debug. Sin embargo, en mi máquina de producción con IIS 7.5, WebActivator no se ejecuta realmente, por lo que todos los módulos no se pueden cargar y tengo que volver a agregar el código en el archivo Global.asax.cs.Webactivator no se ejecuta en IIS 7

No sé dónde empezar a buscar: busqué en Google y busqué StackOverflow, pero no me encontré con nadie que tenga problemas similares. ¿Hay algo explícito que deba configurarse para permitir que se ejecute?

Editar - Se agregó muestra rápida del activador que inicia sesión en Windows. El contenido de la función, cuando se agrega al archivo Global.asax.cs se ejecuta correctamente en el servidor de producción, pero nunca se registra desde el activador.

using System.Web.Mvc; 
using System; 

[assembly: WebActivator.PreApplicationStartMethod(typeof(Admin.App_Start.WebActivatorTestStart), "Start")] 

namespace Admin.App_Start 
{ 
    public static class WebActivatorTestStart { 
     public static void Start() { 

      System.Diagnostics.EventLog log = new System.Diagnostics.EventLog(); 
      log.Source = ".NET Runtime"; 
      log.WriteEntry("WebActivator Start", System.Diagnostics.EventLogEntryType.Information); 

     } 
    } 
} 
+0

¿Tiene ASP.NET 4 instalado en su máquina de producción? – counsellorben

+0

Sí, las mismas versiones de todo entre las cajas de desarrollo y de producción, excepto IIS 7.5/IIS Express 7.5. El grupo de aplicaciones está configurado en .Net 4, canalización integrada. – Leniency

+0

¿Estás seguro de que WebActivator no se ejecuta? Tal vez sea lo que sea que estés haciendo para cargar tus módulos, ¿qué falla? ¿Podría intentar instrumentar el WebActivator para escribir en el registro para que pueda verificar que es el WebActivator el que falla? –

Respuesta

0

Bueno, no puedo decir con certeza qué hice para arreglar las cosas, pero está funcionando ahora.

Un poco de historia: administro un número diferente de aplicaciones grandes, todas usando algunas bibliotecas comunes. Tengo mi biblioteca web común y ahí es donde solía tener la configuración IOC con Ninject y WebActivator. Esta biblioteca base tenía la carpeta App_Start en ella. Tal vez esta fue la razón? No sé. Nunca conseguí que WebActivator funcionara con esta configuración, así que acabo de utilizar NinjectHttpApplication para gestionar el registro y las tareas de inicio. Sin embargo, la biblioteca base todavía tenía una dependencia en WebActivator (simplemente no hay una carpeta App_Start).

Así que ahora estoy trabajando en la refacturación de algunas de las aplicaciones y las bibliotecas base: limpie un poco el olor a código de los últimos meses. Un paso fue mover todo el IoC hasta la aplicación web real: hacer que las bibliotecas base sean menos monolíticas. La biblioteca base ya no tiene ninguna dependencia en WebActivator.

Y ahora funciona. También hay otros 500 pequeños cambios que hice en la biblioteca base, así que pido disculpas a los demás por no ser más sistemáticos al respecto.

Cuestiones relacionadas