Изменение web.config выгружает приложение ASP.NET, но не выгружает «достаточно» - PullRequest
0 голосов
/ 30 июня 2010

У нас есть веб-приложение ASP.NET, которое является C # DLL , которое ссылается на C ++ / CLI DLL , которое ссылается на некоторые собственные статические библиотеки.

Когда мы редактируем файл web.config, домен приложения выгружается, как и ожидалось, однако при следующем веб-запросе происходит сбой приложения с некоторым исключением из-за нарушения прав доступа из нашего собственного кода.

Дальнейшие исследования показали, что, как только домен приложения «выгружается», процесс w3wp.exe фактически живет на , и он выгружает только нашу C # DLL (а не нашу C ++ / CLI DLL). Возможно, именно поэтому мы получаем эти исключения.

Как мы можем остановить это безумие? Можем ли мы заставить ASP.NET полностью перезапустить процесс w3wp после обновления web.config? Можем ли мы заставить ASP.NET фактически выгружать все наши DLL, если w3wp живет?

Ответы [ 2 ]

0 голосов
/ 28 октября 2010

Не удалось найти решение лучше, чем позвонить Environment.Exit(0) в конце Application_End.

0 голосов
/ 30 июня 2010

Создайте сборку оболочки и вручную GetModuleHandle + FreeLibrary при утилизации сборки / домена приложения.

Это может вызвать проблемы, если вы создаете домены приложений вручную или используете один пул приложений в IIS для нескольких приложений.

...