visual studio net deploy create asp c# asp.net restart

c# - studio - cómo reiniciar la aplicación asp.net además de modificar web.config



windows service c# (7)

¿Hay alguna forma recomendada de hacer rebotar una aplicación asp.net además de tocar web.config desde el interior de la aplicación? es HttpRuntime.UnloadAppDomain() ; la forma preferida de hacer esto? y si es así, ¿dónde haces esto? ¿En la descarga de una página o algún otro lugar en la aplicación?


este código funciona para mí solo llámalo para volver a cargar la aplicación.

System.Web.HttpRuntime.UnloadAppDomain();

Lee mas

Este método simplemente descargará nuestra aplicación. Si acaba de poner este método en un botón web de ASP.NET, está totalmente hecho. Entonces, ¿cuándo se volverá a cargar nuestra aplicación? En realidad, si hace clic en su botón, primero se iniciará nuestro método y se descargará la aplicación. Además, en la página web en la que estamos en ese momento también se volverá a cargar, porque simplemente hicimos clic en un botón y la página web debería actualizarse. Después de iniciar nuestro método, el proceso de actualización de la página hará que nuestra aplicación se vuelva a cargar también.


Si esto es .NET 2.0 o superior, puede agregar un archivo "App_offline.htm", realizar una solicitud al servidor, eliminarla y luego realizar otra solicitud al servidor.

Esta secuencia de eventos obligará a ASP.NET a descargar la aplicación mientras exista el archivo app_offline.htm en la carpeta.

Entrada del blog de Scott Guthrie: http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx


Si no desea detener e iniciar el grupo de aplicaciones, siempre puede reciclarlo.


También puede detener e iniciar el grupo de aplicaciones asociado con la aplicación.


Tocar web.config desde dentro de una aplicación es una mala idea, IMO. Además, la idea de tener un archivo que modifique es un pequeño truco, IMO.

La documentación establece específicamente que UnloadAppDomain cerrará la aplicación:

UnloadAppDomain permite el apagado programático de aplicaciones no utilizadas.

Debería poder realizar esta llamada en cualquier lugar de la aplicación. Eso sí, es posible que obtenga una SecurityException , así que asegúrese de que el tiempo de ejecución le otorgue los permisos apropiados (puede poner esto en una biblioteca y hacer una llamada y luego configurar la biblioteca en el GAC con evidencia para darle plena confianza )



Puede reiniciar de forma segura una aplicación web creando o cambiando el nombre de una carpeta en tiempo de ejecución en el directorio de la aplicación. Obviamente, debe otorgarle al usuario asignado para ejecutar la aplicación los derechos de "modificación" al directorio web o a un subdirectorio debajo de él.

el método se menciona en http://www.bartlannoeye.be/blog/restarting-a-.net-web-application-without-restarting-iis

Usé el siguiente código para hacerlo en mi caso. Modifíquelo para trabajar en un subdirectorio "editable"

protected void RestartButton_Click(object sender, EventArgs e) { //restart web app (instead of iisreset) DirectoryInfo dir = new DirectoryInfo(Server.MapPath("restart")); if (dir.Exists) { Directory.Move(dir.FullName, dir.FullName + "ed"); } else { DirectoryInfo dired = new DirectoryInfo(Server.MapPath("restarted")); if (dired.Exists) { Directory.Move(dired.FullName, dir.FullName); } else { Directory.CreateDirectory(dir.FullName); } } }