2012-07-10 22 views
6

Przeczytałem artykuł Phila Haacka o użyciu interfejsu IRegisteredObject, aby upewnić się, że wątek tła zakończy się, gdy AppDomain zostanie usunięty, a ja zaimplementowałem go w moim kodzie. Nie jestem jednak do końca pewien, jak zasymulować awarię AppDomain, aby ją przetestować. Jak mogę zasymulować awarię AppDomain?Symulowanie recyklingu aplikacji AppDomain

Odpowiedz

9

Najłatwiejszym sposobem zamknięcia AppDomain jest zatrzymanie procesu nadrzędnego. W środowisku ASP.NET można to zrobić, przetwarzając lub zatrzymując pulę aplikacji, w której działa kod. Mamy pewien kod, który robi to, aby upewnić się, że rejestracja zostanie przepłukana i tak ją przetestowałem w przeszłości.

Jeśli chodzi o kompletną awarię, nie jestem pewien, jak można to zrobić ... Środowisko hostingowe wychwytuje wyjątki, więc może nie być to możliwe. Możesz spróbować Environment.Exit lub Environment.FailFast, która wymusi natychmiast zakończenie procesu nadrzędnego?

Edytuj: Zapomniałem najłatwiejszej opcji tutaj ... Po prostu zapisz Web.config - spowoduje to odtworzenie AppDomain!

Niektórzy zastępcy ...

Jeśli używasz stosując IIS można recyklingu puli aplikacji począwszy IIS Manager i następujące kroki ...

  1. Znajdź swoją aplikację pod „obiekty”. Być może pod jedną ze stron - prawdopodobnie jako katalog wirtualny.
  2. Kliknij aplikację prawym przyciskiem myszy i wybierz polecenie "Zarządzaj aplikacją", a następnie "Ustawienia zaawansowane".
  3. Zanotuj "pulę aplikacji".
  4. Znajdź pulę aplikacji pod "Pule aplikacji".
  5. Kliknij go prawym przyciskiem myszy i wybierz Odtwórz.

Dla programu IIS Express można po prostu kliknąć prawym przyciskiem myszy ikonę na pasku zadań, aw interfejsie użytkownika można zatrzymać tę aplikację.

W przypadku serwera Visual Studio Development Server (Cassini) można również użyć zasobnika do zatrzymania aplikacji.

+0

Dziękuję za odpowiedź dziekana. Chyba pytałem, co to znaczy "odzyskać pulę aplikacji" i jak to zrobić w celach testowych? – hemlocker

+0

Dodałem kilka opcji w powyższej edycji! –

+0

Dzięki Dean! Jesteś superbohaterem. – hemlocker

Powiązane problemy