/ / edit web.config - przyczyna przestoju? - asp.net, iis, web-config, przestój

edycję web.config - przyczyną przestojów? - asp.net, iis, web-config, przestój

Na stronie, z którą pracuję, mamy dwie klasyzmian, o które mogą poprosić. Z jednej strony mają rzeczy, które muszę przebudować i ponownie wdrożyć. Są to zmiany "przestoju", ponieważ wyświetlamy ładny mały ekran powitalny i dokładnie testujemy witrynę po powrocie.

Z drugiej strony, proszą nas o zrobienie wieluzmiany tekstu, włączanie i wyłączanie funkcji itp., które odizolowaliśmy od web.config. Proponujemy wykonanie ich w oknie wdrażania lub poza nim - po prostu edytujemy plik, sprawdzamy, czy zmiana jest właściwa, i wracaj do pracy.

Ale jeden z inteligentnych facetów po stronie klientazwrócił uwagę, że edycja web.config przetwarza pulę aplikacji i jest to czas przestoju, którego nigdy nie zauważyłem, ale przypuszczam, że to prawda - podczas gdy pula aplikacji jest niedostępna, aplikacja jest "wyłączona".

Ale na jak długo? Nie proszę was, abyście przebrnęli przez komfort klienta z przerwami w pracy, ale czy to jest wspólna perspektywa? A może po prostu nie powinniśmy się martwić, że edycję web.config towarzyszy drugi lub drugi czas przestoju aplikacji?

Odpowiedzi:

3 dla odpowiedzi № 1

Usługi IIS normalnie same odzyskują pulę aplikacji, a jeśli te odzyskiwanie nie wzbudzą obawy, to nie powinno to być ani raz.

Użytkownik nie powinien otrzymywać żadnych błędów "niedostępnych usług", afaik.


5 dla odpowiedzi nr 2

Wszystkie dotychczasowe wypowiedzi są poprawne.

Istnieje jednak sposób na uniknięcie tego przestoju, o ile wartości, które wyciągasz, nie są buforowane.

Możesz przesłać część pliku .config do innego pliku, który nie wyrejestruje puli aplikacji.

W pliku web.config wyglądałoby to tak:

<appSettings file="moresettings.config"></appSettings>

Twój zewnętrzny plik wyglądałby tak:

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="SOMEKEY" value="MYVALUE"/>
</appSettings>

3 dla odpowiedzi nr 3

Jeśli w ogóle dotyczy to przestoju, a dzieje się to często, rozważabym przeniesienie tych ustawień do bazy danych.

Powiedział, że przestój w twoim przypadku będzie minimalny. Pula aplikacji jest ponownie przetwarzana po zapisaniu pliku web.config, a my rozmawiamy w milisekundach.


2 dla odpowiedzi № 4

Jak już wspomniano, usługi IIS rzeczywiście wykorzystują pulę aplikacji. Nie jest to jednak tak złe, jak wykonanie pełnego iisresetu - użytkownicy nie powinni otrzymywać błędu "Usługa niedostępna.", Ponieważ serwer internetowy wciąż działa i działa ponownie - po prostu musi poczekać na ponowne uruchomienie AppPool, co oznacza, że czas reakcji dla użytkowników uzyskujących dostęp w tym momencie jest bardzo wysoki, co może być problemem, jeśli masz publiczną stronę internetową i odwracasz odwiedzających.

Inne efekty uboczne recyklingu AppPool są takie same, jak iisreset: To opróżnia pamięć podręczną sesji InProc, jeśli się nie mylę, i wykonuje zdarzenie Application_Start.

Więc nawet jeśli jest względnie nieszkodliwy, nadal traktowałbym to jako przestój.