2012-07-10 18 views
6

Leí el artículo de Phil Haack sobre el uso de la interfaz IRegisteredObject para asegurarme de que un hilo de fondo finaliza cuando se baja el AppDomain, y lo implementé en mi código. Sin embargo, no estoy del todo seguro de cómo simular un bloqueo AppDomain para probarlo. ¿Cómo puedo simular un bloqueo de AppDomain?Simulando reciclaje de AppDomain

Respuesta

9

La manera más fácil de cerrar AppDomain es haciendo que el proceso principal se detenga. En ASP.NET puede hacer esto reciclando o deteniendo el grupo de aplicaciones bajo el cual se ejecuta su código. Tenemos un código que hace eso para asegurarse de que el registro se vacíe y así lo he probado en el pasado.

En cuanto a un bloqueo completo, no estoy muy seguro de cómo podría hacerlo ... El entorno de alojamiento detecta excepciones, por lo que podría no ser factible. Puede probar Environment.Exit o Environment.FailFast, lo que obligará al proceso principal a salir de inmediato?

Edit: Olvidé la opción más fácil aquí ... Solo guarde Web.config - ¡esto disparará un reciclaje de AppDomain!

Algunos suplentes ...

Si está ejecutando mediante IIS se puede reciclar el grupo de aplicaciones de iniciar el Administrador de IIS y siguiendo estos pasos ...

  1. localiza la aplicación por debajo de 'sitios'. Es posible que esté debajo de uno de los sitios web allí, posiblemente como un directorio virtual.
  2. Haga clic derecho en la aplicación y seleccione 'Administrar aplicación' y luego 'Configuración avanzada'.
  3. Anote el 'Grupo de aplicaciones'.
  4. Localice el grupo de aplicaciones debajo de 'Grupos de aplicaciones'.
  5. Haga clic con el botón derecho y pulse reciclar.

Para IIS Express, simplemente puede hacer clic derecho en el icono de la bandeja y en la interfaz de usuario debería poder detener la aplicación allí.

Para Visual Studio Development Server (Cassini) también puede usar la bandeja para detener la aplicación.

+0

Gracias por la respuesta Dean. Creo que lo que estaba preguntando era ¿qué significa "reciclar el grupo de aplicaciones" y cómo se puede hacer para fines de prueba? – hemlocker

+0

¡He agregado algunas opciones en una edición anterior! –

+0

Gracias Dean! Eres un superhéroe – hemlocker