2012-03-12 10 views
5

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!

+1

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

+0

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

+0

Stiamo riscontrando lo stesso identico problema. –

risposta

0

Se si utilizza IIS 6 o versione successiva, è possibile interrompere il pool di applicazioni specifico. Tuttavia, qual è il comando di compilazione esatto che non sovrascrive il file? Usiamo un passo di automazione della build TFS che copia i nostri file su un server di test che esegue IIS, che ha tutte le DLL in uso e non è un problema. Quello che non posso confermare è come lo faccia, sospetto che stia usando XCOPY ma non ne sono sicuro.

+0

Sì, usiamo anche un passo di automazione della build di TFS - è quel passo che fallisce. –

Problemi correlati