Intercettare il reciclo di un'applicazione ASP.NET

Cristian Civera

di Cristian Civera, in .NET 2.0, martedì 26 settembre 2006 ore 09.27

Qualche tempo fa parlai del reciclo degli AppDomain delle applicazioni ASP.NET. Sviluppando WebXaml ho avuto la necessità di chiudere delle risorse durante la chiusura dell'AppDomain. Non esiste (almeno che io conosca) un modo per conoscere quando ciò avviene; intercettare l'evento DomainUnload della classe AppDomain non è appropriato perché è troppo tardi per eseguire le operazioni di scarico.

Possiamo però implementare l'interfaccia IRegisteredObject e registrarla in qualsiasi momento tramite HostingEnvironment.RegisterObject. Quando viene richiesto al runtime di ASP.NET di scaricare l'AppDomain, viene chiamato, per tutte le classi registrate, il metodo Stop(false). Successivamente viene accodato nel thread pool un ulteriore chiamata al metodo Stop(true) e finalmente scaricato l'AppDomain con Unload.

public class MyClass : IRegisteredObject 
{ 
    void IRegisteredObject.Stop(bool immediate) 
    { 
         // Disposing... 
        HostingEnvironment.UnregisterObject(this); 
    } 
}

E' nella prima chiamata che ho trovato il punto più appropriato per chiudere le mie risorse.

UPDATE: mi è venuto in mente che ovviamente esiste l'evento Application_OnEnd, ma va inserito nel global.asax e non è quindi "pluggabile".

Commenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.



Segnala su: Facebook MSDN Social Twitter Segnalo Wikio Diggita Technorati Stumbleupon Google Yahoo FriendFeed Delicious Furl

Nella stessa categoria
I più letti del mese
TagCloud
.NET Framework, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Framework 4.0, ADO.NET Entity Framework, AJAX, Architettura, ASP, ASP.NET, ASP.NET 2.0, ASP.NET 2.0 per tutti, ASP.NET 4.0, ASPItalia.com, Custom Control, Databinding, Datagrid, HttpRuntime, IIS, Javascript, LINQ, LINQ to Entities, LINQ to SQL, Media Center, Microsoft Expression, Object Oriented Programming, Off Topic, PDC 2008, Silverlight, Silverlight - animazioni, Silverlight 2.0, Silverlight 3.0, User Control, Visual Studio, Windows 7, Windows CardSpace, Windows Client, Windows Communication Foundation, Windows Live Services, Windows Presentation Foundation, Windows Server, Windows Vista, Windows Workflow Foundation, XAML, XBox 360, XHTML, XML, XPS, XSLT
BLOG INFO
  • 199 post, 86 commenti, 42 trackback
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom
IN EVIDENZA