IIS и ASP.NET блокирует мою dll PInvoke - PullRequest
4 голосов
/ 11 ноября 2010

У меня есть веб-сайт ASP.NET MVC, который использует внутреннюю DLL для некоторых вещей PInvoke.DLL находится в папке / bin рядом с другими сборками.Это работает хорошо, но если я хочу заменить содержимое папки / bin новым набором файлов, скопировав в существующие файлы (это на тестовом сервере), DLL-файл PInvoke заблокирован / используется работником w3wp.exeпроцесс и не может быть заменен, за исключением случаев, когда вы перезапускаете пул приложений или перезапускаете IIS.

Это стандартное поведение или я могу как-то проинструктировать среду выполнения ASP.NET для создания теневой копии dll PInvoke, подобной обычным сборкам?

1 Ответ

2 голосов
/ 11 ноября 2010

AFAIK, если IIS имеет дескриптор DLL, вы не сможете заменить DLL.

Вы упомянули APPPool Recycle и IIS Restart ...

Iдумаю, вы, возможно, не использовали прикосновения к файлу web.config.Я имею в виду, откройте ваш web.config в блокноте, внесите изменения [например, добавьте пробел и удалите его] и сохраните файл.Это перезапустит домен вашего приложения и, следовательно, в идеале ссылка на сборку должна быть освобождена [если это не общая сборка].

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