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
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 ...
- 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.
- Haga clic derecho en la aplicación y seleccione 'Administrar aplicación' y luego 'Configuración avanzada'.
- Anote el 'Grupo de aplicaciones'.
- Localice el grupo de aplicaciones debajo de 'Grupos de aplicaciones'.
- 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.
- 1. ¿Qué es exactamente Appdomain reciclaje
- 2. Appdomain recycle settings en mod_mono & Apache
- 3. ViewPager + reciclaje de vistas?
- 4. Simulando lluvia
- 5. Cargar ensamblaje en AppDomain nuevo sin cargarlo en Parent AppDomain
- 6. Linux PID reciclaje
- 7. Java AppDomain like abstraction?
- 8. IIS AppDomain instanciation
- 9. SecurityException en Sandboxed AppDomain
- 10. Comunicación y rendimiento de AppDomain
- 11. Uso de AppDomain en C#
- 12. Problema de comunicación Inter-AppDomain
- 13. Reemplazar una DLL mientras AppDomain ya está cargado en ASP.NET
- 14. imprimiendo lentamente (Simulando tipear)
- 15. Simulando un dispositivo TWAIN
- 16. Simulando un BlueScreen
- 17. Simulando un parámetro de plantilla
- 18. ¿Cómo funciona la Papelera de reciclaje Vista?
- 19. AppDomain Unload killing Parent Dominio de aplicación
- 20. Montaje de carga/descarga en diferentes AppDomain
- 21. Impedir la creación de subprocesos en AppDomain
- 22. simulando el toque usando ADB
- 23. Simulando/dev/random en Windows
- 24. Simulando un dispositivo MIDI - Windows
- 25. Simulando la gravedad en XNA
- 26. Simulando poca memoria usando C++
- 27. Simulando niveles de confianza de hosting compartido
- 28. Simulando hardware de baja precisión en Java
- 29. Simulando interruptores de contexto en JavaScript?
- 30. simulando un evento de cambio jquery
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
¡He agregado algunas opciones en una edición anterior! –
Gracias Dean! Eres un superhéroe – hemlocker