Sto utilizzando NHunspell in un'applicazione Web ASP.net. NHunspell include Hunspellx86.dll o Hunspellx64.dll, entrambi sono dll non gestiti.Impossibile eliminare la DLL gestita dopo averla utilizzata in un'applicazione web asp.net
Il problema è questo: quando ho smaltire mio oggetto NHunspell (che chiama FreeLibrary
da kernel32.dll
), sembra che IIS è ancora appeso su di esso - come dimostrano sia windbg e tasklist /m
. Ciò è problematico se, ad esempio, provo a sostituire quella dll utilizzando un processo di compilazione automatizzato o eseguo un programma di installazione per aggiornare la mia applicazione web: tutto fallisce perché quella DLL è in uso.
Mi chiedo se qualcuno può confermare i miei sospetti che sia, in realtà, IIS che lo sta memorizzando nella cache? Inoltre, perché posso eliminare le DLL gestite direttamente da IIS (anche quando tasklist
segnala quelle DLL come utilizzate da IIS)?
Infine, sto cercando suggerimenti su cosa fare per essere in grado di eliminare questa DLL per le installazioni/installazioni automatiche?
Grazie mille!
L'opzione di overkill suppongo sia 'iisadmin/stop' e' iisadmin/start' attorno a quelle parti della build, presupponendo che la build sia in esecuzione con autorizzazioni sufficienti. – Rup
Hai anche provato [Sysinternals Process Explorer] (http://technet.microsoft.com/en-us/sysinternals/bb896653)? È possibile eseguire una ricerca di handle per il nome della DLL e vedere esattamente quale processo è ancora in attesa sulla DLL, il servizio di base IIS o il pool di applicazioni. Questo potrebbe non dirti nulla di nuovo, però. – Rup
Stiamo riscontrando lo stesso identico problema. –