Każdy programista ASP.NET musi od czasu do czasu podpiąć się pod IIS debuggerem. Niekiedy nawet kilkadziesiąt razy dziennie. Właśnie jednego z takich dni niesamowicie irytowało mnie to, że w pewnym momencie debuggowanie po prostu… ustawało. Jakby aplikacja kończyła działanie. Ruszyłem na poszukiwania rozwiązania.
A rozwiązanie okazało się proste i logiczne. Domyślnie IIS pinguje aplikację co X sekund i oczekuje na odpowiedź. A debuggowany proces na takie zaczepki nie odpowiada. W razie braku odpowiedzi IIS uznaje, że aplikacja się zbiesiła i w napadzie dzikiej wściekłości pokazuje kto jest prawdziwym szefem. Skraca jej żywot. Bezczelnie ubija pulę. Na śmierć.
Zachowanie samo w sobie jest właściwie pożądane, ale raczej nie podczas procesu tworzenia systemu. Na szczęście zmiana/wyłączenie go jest bardzo proste (jak wszystko… tylko trzeba się tam dokopać i znaleźć odpowiednie ustawienie). W okienku zaawansowanych ustawień puli aplikacji wystarczy zmienić opcję “Ping enabled” na false, i możemy trzymać podpiętego debuggera dowolnie długo:
Happy asp-debugging!