ApplicationDomain.Unload Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Descarrega o domínio do aplicativo.
public:
void Unload();
public void Unload ();
member this.Unload : unit -> unit
Public Sub Unload ()
Exemplos
O exemplo a seguir demonstra como exibir todas as propriedades e descarregar um domínio de aplicativo.
using System;
using Microsoft.Web.Administration;
namespace AdministrationSnippets
{
public class MicrosoftWebAdministrationApplicationDomain
{
ServerManager manager = new ServerManager();
public void RecycleApplicationDomains()
{
Console.WriteLine("Displaying Worker Processes & Application Domains...");
GetApplicationDomains();
Console.WriteLine("Unloading all application domains");
UnloadApplicationDomains();
Console.WriteLine("Displaying Worker Processes & Application Domains with new IDs...");
GetApplicationDomains();
}
public void UnloadApplicationDomains()
{
foreach (WorkerProcess proc in manager.WorkerProcesses)
{
foreach (ApplicationDomain ad in proc.ApplicationDomains)
{
ad.Unload();
}
}
}
public void GetApplicationDomains()
{
foreach (WorkerProcess proc in manager.WorkerProcesses)
{
Console.WriteLine("Worker Process Found:");
Console.WriteLine("\tProcessId: {0}", proc.ProcessId);
Console.WriteLine("\tProcessGuid: {0}", proc.ProcessGuid);
Console.WriteLine("\tAppPoolName: {0}", proc.AppPoolName);
Console.WriteLine("\tApplication Domains:");
foreach (ApplicationDomain ad in proc.ApplicationDomains)
{
Console.WriteLine("\t\tApplication Domain Found:");
Console.WriteLine("\t\t{0}", ad.Id );
Console.WriteLine("\t\t{0}", ad.VirtualPath );
Console.WriteLine("\t\t{0}", ad.PhysicalPath );
Console.WriteLine("\t\t{0}", ad.Idle);
}
}
}
}
}
Comentários
Esse método descarrega o domínio do aplicativo e libera referências a todos os assemblies que o domínio do aplicativo carregou.
A operação de descarregamento não é concluída até que os threads do domínio do aplicativo tenham sido encerrados.
O Unload método encerra os threads no domínio do aplicativo chamando o System.Threading.Thread.Abort método em cada thread. Embora os threads devam ser encerrados imediatamente, eles podem continuar a ser executados por um período imprevisível de tempo.