2012-12-17 9 views
15

Nasza witryna działa na dwóch komputerach z iis 7.5 Jedna działa dobrze.Pierwsze żądanie aplikacji sieci Web IIS 7.5 po bardzo powolnym odtworzeniu puli aplikacji.

Drugi jak zawsze zajmuje bardzo dużo czasu na przetwarzanie pierwszego żądania po odtworzeniu puli aplikacji. Może to zająć nawet 60sek, co jest niedopuszczalne, ponieważ zostanie użyte jako nasz serwer produkcyjny.

Sprawdziłem ustawienia puli aplikacji na obu serwerach i są one takie same, a wersja na obu serwerach jest taka sama. Uruchomiłem menedżer zadań i monitor zasobów, dodam połączenie z maszyną, gdy wykonuję żądanie, ale nic więcej się nie dzieje, iis nie pokazuje nawet żądania w dziennikach do jego ukończenia. Naprawdę nie wiem, co robi w międzyczasie.

Czy są jakieś ślady ustawień, z którymi możemy próbować grać, aby to naprawić lub znaleźć problem. To bardzo zagadkowe.

EDIT: Więc mam trochę więcej informacji teraz, finall ale nieudane dzienniki żądań do pracy (miał dać użytkownikowi IIS_IUSRS uprawnienia), ale mam pewne dzienniki, aby zobaczyć co się dzieje

Czas stracony w pliku dziennika wynosi pomiędzy dwie sekundy.

1. MODULE_PRECONDITION_NOT_MATCH Name="ScriptModule-4.0", Precondition="managedHandler,runtimeVersionv4.0"   12:09:46.422 
2. VIRTUAL_MODULE_UNRESOLVED  Name="FormsAuthentication", Type="System.Web.Security.FormsAuthenticationModule"  12:12:04.390 

Jak widzisz, trwa to ponad 2 minuty pomiędzy tymi dwoma wydarzeniami, czy ktoś już to wcześniej spotkał?

+0

Czy dane używane przez instancje również są takie same? –

+0

@Thomas. Tak, strony internetowe w tej chwili wskazują tę samą bazę danych. – MrJoeBlow

+0

Pliki web.config są takie same? – Aristos

Odpowiedz

19

To jest trochę trudno powiedzieć, co się dzieje na innym serwerze, jednak tutaj jest prosta lista kontrolna może warto rozważyć:

  • Zawsze pre-kompilacji witryny, w przeciwieństwie do kopiowania go! można uzyskać znaczący wzrost wydajności kompilacji swoją stronę przed wdrożeniem: ASP.NET Precompilation Overview

  • nie uruchamiaj aplikację produkcyjną z debug="true" włączona, gdy flaga debugowania jest prawdziwe w Twojej web.config, dużo więcej pamięci jest używana w aplikacji na czas pracy, a ponieważ niektóre dodatkowe ścieżki debugowania są włączone, kody można wykonać znacznie wolniej

  • Sprawdź plik Web.config w celu zapewnienia śladu jest wyłączony w sekcji <trace>

  • IIS 7.5 pochodzi z Auto-Start Feature. WAS (Windows Process Activation Service) uruchamia wszystkie pule aplikacji, które są skonfigurowane do automatycznego uruchamiania, należy upewnić się, że pula aplikacji jest skonfigurowana do AlwaysRunning w IIS 7.5 applicationHost.config, check out here Więcej szczegółów

  • Sprawdź plik ASPNET.CONFIG zobaczyć jeśli konfiguracja na obu serwerach jest wciąż taka sama. Każdy serwer asp.net może być dobrze skonfigurowany za pomocą pliku aspnet.config znajdującego się w katalogu głównym folderu ramowego:

  • Upewnij się, że w pliku aspnet.config podane przez wydawcę dane dotyczące zabezpieczeń dostępu do kodu (CAS) są ustawione na wartość false, co może zwiększyć obciążenie strony początkowej po ponownym uruchomieniu puli aplikacji ASP.NET. możesz przeczytać more about it here.

Oto jak wyłączyć sprawdzanie CAS polityki wydawcy dla aplikacji:

<configuration> 
    <runtime> 
     <generatePublisherEvidence enabled="false"/> 
    </runtime> 
</configuration> 
+0

Dzięki. Przejdę przez tę listę i mam nadzieję, że coś z tego wyniknie. Odpowiem raz zrobione. – MrJoeBlow

Powiązane problemy