Handler „ExtensionlessUrlHandler-Integrated-4.0” ma zły moduł „ManagedPipelineHandler” na liście modułów

Szczerze mówiąc, próbowałem zamienić nieuczciwą sztuczkę na usługi IIS i właśnie wtedy, gdy pomyślałem, że zamierzam to zrobić, zrozumiałem, że moje obejście nie działa. Oto, co próbowałem zrobić:

1) Mam aplikację ASP.NET, która maPreloader klasa, która dziedziczyIProcessHostPreloadClient i wykonuje całą ciężką inicjalizacjęWstępne ładowanie implementacja metody (aplikacja jest złożona i jest częścią ogromnego systemu, więc potrzeba około 2 minut na nawiązanie połączenia ze wszystkimi niezbędnymi usługami i wykonanie pre-instancji niektórych rejestracji Unity).

2) Mam dużo pracy, którą należy wykonać przy zamykaniu aplikacji (anulowanie subskrypcji, rozłączanie, usuwanie ...) i chyba najlepsze miejsce do zrobienia to metoda * Application_End * znajdująca się wGlobal.asax.

3) Wszystko działa dobrze, gdy mam aktywność użytkownika (pierwsze żądanie po uruchomieniu puli aplikacji, która zawiera wyżej wymienioną aplikację internetową spowoduje wywołanie * Application_Start *, a następnie * Application_End * zostanie wywołane w zatrzymaniu lub ponownym przetworzeniu puli aplikacji), ale problemy występuje, gdy nie ma aktywności użytkownika, a aplikacja próbuje się zrestartować po 48 godzinach aktywności (skonfigurowany wymóg). Ponieważ nie było żądań, aplikacja oficjalnie się nie zaczęła. Ergo, nie można go bezpiecznie zatrzymać, ponieważ nie zostanie wywołany * Application_End *.

4) Teraz nadchodzi niechlujna część ... Próbowałem wykonać żądanie GET z kodu na końcuWstępne ładowanie metoda i to zadziałało. Ale to rozwiązanie wydawało mi się złe, mimo że zadziałało. Więc wypróbowałem wiele rzeczy, a ostatnią rzeczą, którą próbowałem, było to:

SimpleWorkerRequest swr = new SimpleWorkerRequest(string.Empty, string.Empty, tw);
HttpRuntime.ProcessRequest(swr);

... i to się spełniło. * Wywołano Application_Start *, (sprawdziłem odpowiedź, zawierała stronę logowania, która miała być wyświetlana w początkowym żądaniu), a na aplikacji Application Pool zamknięto aplikację wdzięcznie, wykonując niezbędną pracę w * Application_End *.

ALE

Po uruchomieniu aplikacji (wstępnie załadowanym i zainicjowanym) w ten sposób stało się to, gdy chciałem dotrzeć do aplikacji za pomocą przeglądarki internetowej:

Błąd HTTP 500.21 - Wewnętrzny moduł obsługi błędów serwera „ExtensionlessUrlHandler-Integrated-4.0” ma zły moduł „ManagedPipelineHandler” na liście modułów

Nie jestem w stanie tego zrozumieć. Czy ktoś może mi powiedzieć, dlaczego tak się dzieje i jak to naprawić?

Jeśli tego nie zrozumiem, wrócę do pierwszego rozwiązania (wysłanie żądania GET z kodu), ale ten problem będzie mnie niepokoił, ponieważ nie mam nawet pojęcia, co jest nie tak.

questionAnswers(3)

yourAnswerToTheQuestion