2009-09-02 9 views
5

Pracuję nad projektem MVC i wydajność była dobra.Global.asax Application_start wystrzelił przy każdej akcji

Na application_start baza danych jest indeksowana do wyszukiwania lucene.net (i każdej zmiany obiektu przedłużanego indeksu). Ale application_start działa przy każdej akcji, którą wywołuję na stronie.

Dlaczego uruchamiany jest program application_start nie tylko jeden raz? Będę pisać żadnego kodu, gdy wiem gdzie szukać;)

Nie jestem pewien, czy web.config może powodować takie zachowanie ...

Rozwiązanie: Lucene.net napisał swój indeks do kosza folder, po zmianie ścieżki aplikacja już nie topnieje :)

Odpowiedz

8

Może to być spowodowane tym, że gdy Lucene tworzy swój indeks modyfikuje niektóre pliki (web.config, global.asax, bin bin itp. .), które spowodują zwolnienie AppDomain.

+0

W web.config nie ma nic o lucene, ale w folderze bin znajduje się folder o nazwie _indexes ... może to z Lucene? Facet, który założył lucene, zniknął (zewnętrzny programista) i nie jest dostępny w ciągu najbliższych dwóch tygodni. – griti

+1

Jeśli folder bin zostanie zmieniony, aplikacja uruchomi się ponownie. Musisz zmienić konfigurację Lucene, aby przechowywać swój indeks w innym miejscu. –

+0

tak, dowiedziałem się, gdzie jest skonfigurowany lucene. dzięki! – griti

1

Najprawdopodobniej plik web.config zostanie jakoś zmodyfikowany.
Aby go śledzić, spróbuj ustawić atrybut "tylko do odczytu" pliku web.config i sprawdź, czy są jakieś błędy.

Naprawdę głównym miejscem, na które należy zwrócić uwagę, jest web.config, prawdopodobnie również w przypadku łozysk.

+0

po uruchomieniu aplikacji Ustawiam plik web.config i folder bin + podfoldery na readonly i wciąż wywoływany jest app_start :( – griti