Ошибка при удалении содержимого contextregistry / закрытии httpsession / очистке кеша сессии
Я сталкиваюсь со смертельным исходом приложения asp.net, когда я запускаю приложение во второй раз. Первый раз после повторной сборки выполняется успешно, но второй запуск (без новой сборки) завершается неудачно. После новой перестройки приложение запускается снова, но второй запуск без новой перестройки завершается неудачей и т. Д. Поэтому мне приходится каждый раз перестраивать, чтобы запуск приложения был успешным.
Ошибка: не удается разрешить тип [BiFiModelSweden.BiFiModelSwedenClass] для объекта с именем 'BiFiModelSweden', определенного в строке файла [C:...\bin\BiFiContext.xml] 8
Это происходит в последней команде ниже при создании IApplicationContext со значением NULL:
String cx1 = ConfigurationManager.AppSettings["cx1"];
String cx2 = ConfigurationManager.AppSettings["cx2"];
IApplicationContext cxt = new XmlApplicationContext(HttpContext.Current.Request. MapPath(cx1), HttpContext.Current.Request.MapPath(cx2));
После профилирования веб-сервера разработки, на котором выполняется приложение, с использованием профилировщика памяти ANTS, мы получаем вывод:
Не все объекты были удалены из contextregistry. Вы забыли использовать base.Dispose()?
Затем мы попробовали все, что могли, чтобы использовать метод dispose различными способами. Мы не можем преодолеть этот фатальный сбой приложения!
дополнительное наблюдение: log4net ведет журнал, даже если приложение остановлено на полпути. Это символизирует сессию зомби? может ли это быть проблемой, что мы никогда не убиваем один сеанс полностью, когда запускаем новый запуск / сеанс приложения? приводя к фатальному исключению? что предыдущий сеанс оставлен висеть и удерживать (блокировать) ресурсы?
в этом случае мы перепробовали все способы уничтожения сессии: * session.Abandon() * gc.finalize() * и т. д.
ничего не работает Единственный обходной путь - ручное удаление кэша... что нецелесообразно. Как мы решаем это!!