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
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 ...
- Znajdź swoją aplikację pod „obiekty”. Być może pod jedną ze stron - prawdopodobnie jako katalog wirtualny.
- Kliknij aplikację prawym przyciskiem myszy i wybierz polecenie "Zarządzaj aplikacją", a następnie "Ustawienia zaawansowane".
- Zanotuj "pulę aplikacji".
- Znajdź pulę aplikacji pod "Pule aplikacji".
- 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.
- 1. Opóźnienie AppDomain recyklingu na zmianę folderu
- 2. Instancja aplikacji IIS AppDomain
- 3. Co dokładnie oznacza "Pula punktów recyklingu aplikacji" dla aplikacji
- 4. Symulowanie Windows 8 Przechowywanie kupowanych aplikacji
- 5. Symulowanie aerozolu
- 6. Symulowanie deszczu
- 7. Wdrożenie standardowych zasad recyklingu
- 8. Przekazywanie gniazda do nowej AppDomain
- 9. Symulowanie urządzenia MIDI - Windows
- 10. Załaduj zestaw do potomnej aplikacji AppDomain i zwalniaj plik DLL
- 11. Wyjątek od otrzymania odwołania do zestawu z innej aplikacji AppDomain
- 12. Jak załadować zespół do aplikacji AppDomain z rekurencyjnie wszystkimi odwołaniami?
- 13. Symulowanie relacji w MongoDB
- 14. Co to jest AppDomain?
- 15. SecurityException w Sandboxed AppDomain
- 16. Java AppDomain jak abstrakcja?
- 17. AppDomain Nieobsługiwany wyjątek
- 18. Symulowanie błędu symulatora iPhone'a podczas ponownej instalacji aplikacji z Xcode
- 19. Jak wyśrodkować elementy z recyklingu?
- 20. Symulowanie urządzenia TWAIN
- 21. Symulowanie żądania GET XHR
- 22. Symulowanie ADT w Javie
- 23. VB Symulowanie naciśnięcia klawisza
- 24. Symulowanie naciśnięcia klawiszy skrótu systemowego
- 25. Jak recyklingu/dysponowania bitmapy używany przez tematu
- 26. Jak skonfigurować AutoMapera raz na AppDomain
- 27. Zapobieganie tworzeniu wątków w AppDomain
- 28. Ładowanie konfekcjonowane w oddzielnych AppDomain, coraz InvalidCastException
- 29. Pociągnij, aby odświeżyć widok z recyklingu Android
- 30. Symulowanie terminalu linuksowego w przeglądarce
Dziękuję za odpowiedź dziekana. Chyba pytałem, co to znaczy "odzyskać pulę aplikacji" i jak to zrobić w celach testowych? – hemlocker
Dodałem kilka opcji w powyższej edycji! –
Dzięki Dean! Jesteś superbohaterem. – hemlocker