我在ASP.net web应用程序中使用NHunspell。NHunspell包装Hunspellx86.dll或Hunspellx64.dll,这两个都是非托管dll。
问题是这样的:当我处理我的NHunspell对象(它从kernel32.dll调用FreeLibrary )时,IIS似乎仍然使用它- windbg和tasklist /m都证明了这一点。比方说,如果我试图使用自动构建过程替换该dll,或者运行安装程序来更新我的web应用程序,这是有问题的:一切都会失败,因为该dll正在使用中。
我想知道是否有人能证实我的怀疑,那就是缓存它的实际上是IIS?另外,为什么我可以直接从IIS下删除托管的dlls (即使tasklist报告这些dlls已被IIS使用)?
最后,我正在寻找一些建议,关于如何删除这个dll以实现自动构建/安装?
非常感谢!
发布于 2012-03-14 02:11:50
如果您在IIS6或更高版本上运行,则只需停止特定的应用程序池即可。但是,不会覆盖该文件的确切构建命令是什么?我们使用TFS构建自动化步骤,将我们的文件复制到运行IIS的测试服务器,该服务器使用了所有的dlls,这是没有问题的。我不能确认的是它是如何做到这一点的,我怀疑它正在使用XCOPY,但我不能确定。
https://stackoverflow.com/questions/9674767
复制相似问题