Newsgroup: it.comp.www.asp
Titolo: Liberare un oggetto COM

Come si fa a "libebrare" una DLL che creo come oggetto da una pagina ASP?
Ovvero se creo un istanza di un oggetto per poi liberare la DLL non basta
fare
set x=nothing ?
Quando lo faccio e poi provo a sovrascrivere sul server la DLL mi dice
Accesso negato. La risorsa richiesta potrebbere essere in uso.
Dove sbaglio?
Edika

 set x=nothing ?
libeBrare?
^________^
Non basta:
devi fare un sacco di altre cose, IIS infatti tiene in memoria tutti i
componenti di una Web Application finche' anche l'ultima Session aperta non
e' chiusa.
Se ci sei solo tu a fare le prove "session.abandon" dovrebbe essere
sufficente, altrimenti devi:
1) Aprire la MMC
2) Selezionare il server che ospita la tua application
3) Stopparlo
4) Cliccare col tasto di destra sulla tua application e selezionare
proprieta'
5) Andare sulla scheda che riguarda la root principale, se c'e' altrimenti
dovresti vedere subito il tasto "UNLOAD" cliccaci e poi
6) Fai ripartire il webserver.
Incasinato, ma efficace.
Tieni presente che se clicchi su Unload mentre il webserver e' in esecuzione
rischi di far inchiodare l'applicazione, cosa che puoi sbloccare solo con un
reboot del sistema.
Nettuno

Devi stoppare il servizio IIS

 Devi stoppare il servizio IIS
Non sempre è sufficiente purtroppo...
Devi killare anche nei processi inetinfo, se non vuoi riavviare il pc.
Altrimenti la devi registrare con transaction.

>Come si fa a "libebrare" una DLL che creo come oggetto da una pagina ASP?
Imposta la tua applicazione che giri come "isolated process" e nella
proprieta' dell'applicazione (in IIS, intendo) digli di no cachare le ISAPI.
In questo modo puoi fare quello che vuoi. Se usi Interdev puoi registrare
il componente da Interdev stesso.
Antonio Donatiello

> Imposta la tua applicazione che giri come "isolated process"
E' vero, ma è consigliabile farlo solo se sei in ambiente di test.
In produzione credo abbia un impatto deleterio sulle prestazioni.

 In produzione credo abbia un impatto deleterio sulle prestazioni.
Dipende da cosa sta facendo quel server... per esempio, se su di esso girano
50-60 applicazioni di e-commerce, come accade normalmente quando ci sono
molti siti in housing sullo stesso PC, e' meglio che ognuno giri per i fatti
suoi o al primo crash di una delle applicazioni scatta la tragedia.
Nel qualcaso la cura e drastica: reset. Meglio mettere su qualche mega di
ram in piu' eh?
Tutto e' relativo, come sempre.
Nettuno

>In produzione credo abbia un impatto deleterio sulle prestazioni.
Sicuramente su quello di sviluppo dove d'altronde serve maggiormente.
Su quello di produzione comunque serve a separare le varie applicazioni.
Altrimenti se va in crash butta giu' IIS.
Quanto sia deleterio per le prestazioni non saprei comunque tieni presente
che IIS crea un processo solo per l'intera applicazione e le richieste sono
comunque gestite come tanti thread e quindi in modo efficiente. La lentezza
e' dovuta alla comunicazione tra IIS e il processo creato per la tua
applicazione ma penso che i tempi siano sicuramente maggiori dei tempi di
trasmissione su Internet.
Magari su una Intranet te ne puoi accorgere di piu'.
Antonio

Io facendo cosě ho moccolato in aramaico per 3 giorni xchč non andava CDONTS
, e poi x magia una volta deselezionata sta ca@@o di opzione č andato tutto
come un missile.
Mha misteri della fede!

>trasmissione su Internet.
.. volevo dire MINORI, cioe' i tempi di comunicazione tra i processi sono
minori della trasmissione su Internet.
Antonio


Moderatore di it.comp.www.asp
Sito di supporto: 
http://www.aspitalia.com/newsgroup/icwa.asp
ASPITALIA + Wrox Press = Una montagna di libri GRATIS!
Partecipa al nostro concorso! 
http://www.aspitalia.com