Невозможно удалить управляемую DLL после использования в веб-приложении asp.net - PullRequest
5 голосов
/ 13 марта 2012

Я использую NHunspell в веб-приложении ASP.net. NHunspell оборачивает либо Hunspellx86.dll, либо Hunspellx64.dll, оба из которых являются неуправляемыми dll.

Проблема заключается в следующем: когда я избавляюсь от своего объекта NHunspell (который вызывает FreeLibrary из kernel32.dll), кажется, что IIS все еще цепляется за него - о чем свидетельствуют windbg и tasklist /m. Это проблематично, если, скажем, я пытаюсь заменить эту DLL-библиотеку, используя автоматический процесс сборки, или запускаю установщик для обновления моего веб-приложения: все не получается, потому что эта DLL-библиотека используется.

Мне интересно, может ли кто-нибудь подтвердить мои подозрения, что, собственно, IIS его кеширует? Кроме того, почему я могу удалить управляемые библиотеки прямо из-под IIS (даже если tasklist сообщает об этих библиотеках, используемых IIS)?

Наконец, я ищу предложения о том, что делать с возможностью удаления этой dll для автоматической сборки / установки?

Большое спасибо!

1 Ответ

0 голосов
/ 13 марта 2012

Если вы работаете на IIS 6 или более поздней версии, вы можете просто остановить определенный пул приложений.Однако какая именно команда сборки не перезаписывает файл?Мы используем шаг автоматизации сборки TFS, который копирует наши файлы на тестовый сервер с IIS, на котором есть все используемые библиотеки, и это не проблема.Что я не могу подтвердить, так это то, как он это делает, я подозреваю, что он использует XCOPY, но я не уверен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...