[英]Unable to delete managed dll after using it in an asp.net web application
我在ASP.net Web應用程序中使用NHunspell。 NHunspell包裝了Hunspellx86.dll或Hunspellx64.dll,這兩個都是非托管的dll。
問題是這樣的:當我處理我的NHunspell對象(從kernel32.dll
調用FreeLibrary
)時,似乎IIS仍然掛在它上面 - 正如windbg和tasklist /m
所證明的那樣。 例如,如果我嘗試使用自動構建過程替換該dll,或者運行安裝程序來更新我的Web應用程序,則會出現問題:因為dll正在使用中,所有內容都會失敗。
我想知道是否有人可以證實我的懷疑,事實上,IIS正在緩存它? 另外,為什么我可以從IIS下刪除托管dll(即使tasklist
報告IIS使用的那些dll)?
最后,我正在尋找有關如何實際刪除此dll以進行自動構建/安裝的建議?
非常感謝!
如果您在IIS 6或更高版本上運行,則可以停止特定的應用程序池。 但是,什么是不覆蓋文件的確切構建命令? 我們使用TFS構建自動化步驟將我們的文件復制到運行IIS的測試服務器,該服務器具有所有正在使用的dll並且沒有問題。 我無法確認它是如何做到的,我懷疑它是使用XCOPY,但我不能確定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.