ApplicationDomain.Unload メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アプリケーション ドメインをアンロードします。
public:
void Unload();
public void Unload ();
member this.Unload : unit -> unit
Public Sub Unload ()
例
次の例では、すべてのプロパティを表示し、アプリケーション ドメインをアンロードする方法を示します。
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);
}
}
}
}
}
注釈
このメソッドは、アプリケーション ドメインをアンロードし、アプリケーション ドメインが読み込んだアセンブリへの参照を解放します。
アンロード操作は、アプリケーション ドメインのスレッドが終了するまで完了しません。
メソッドは Unload 、各スレッドで メソッドを呼び出すことによって、アプリケーション ドメイン内の System.Threading.Thread.Abort スレッドを終了します。 スレッドは直ちに終了する必要がありますが、予測できない期間実行を続けることができます。