<applicationPool> , element (ustawienia sieci Web)
Określa ustawienia konfiguracji używane przez ASP.NET do zarządzania zachowaniem całego procesu, gdy aplikacja ASP.NET jest uruchomiona w trybie zintegrowanym w usługach IIS 7.0 lub nowszej wersji.
Ważne
Ten element i funkcja, która obsługuje tylko wtedy, gdy aplikacja ASP.NET jest hostowana w usługach IIS w wersji 7.0 lub nowszej.
<Konfiguracji>
<System.web>
<pula aplikacji>
Składnia
<applicationPool
maxConcurrentRequestsPerCPU="5000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="5000" />
Atrybuty i elementy
W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.
Atrybuty
Atrybut | Opis |
---|---|
maxConcurrentRequestsPerCPU |
Określa, ile równoczesnych żądań ASP.NET zezwala na procesor CPU. |
maxConcurrentThreadsPerCPU |
Określa liczbę równoczesnych wątków, które mogą być uruchomione dla puli aplikacji dla każdego procesora CPU. Zapewnia to alternatywny sposób kontrolowania ASP.NET współbieżności, ponieważ można ograniczyć liczbę zarządzanych wątków, których można użyć na procesor w celu obsługi żądań. Domyślnie to ustawienie to 0, co oznacza, że ASP.NET nie ogranicza liczby wątków, które można utworzyć na procesor CPU, chociaż pula wątków CLR ogranicza również liczbę wątków, które można utworzyć. |
requestQueueLimit |
Określa maksymalną liczbę żądań, które mogą być kolejkowane dla ASP.NET w jednym procesie. Gdy co najmniej dwie ASP.NET aplikacje są uruchamiane w jednej puli aplikacji, skumulowany zestaw żądań wysyłanych do dowolnej aplikacji w puli aplikacji podlega temu ustawieniu. |
Elementy podrzędne
Brak.
Elementy nadrzędne
Element | Opis |
---|---|
<System.web> | Zawiera informacje o sposobie interakcji ASP.NET z aplikacją hosta. |
Uwagi
Po uruchomieniu usług IIS 7.0 lub nowszej w trybie zintegrowanym ta kombinacja elementów umożliwia skonfigurowanie ASP.NET sposobu zarządzania wątkami i kolejkami żądań, gdy aplikacja jest hostowana w puli aplikacji IIS. Jeśli uruchamiasz usługi IIS 6 lub uruchamiasz usługi IIS 7.0 w trybie klasycznym lub w trybie ISAPI, te ustawienia są ignorowane.
Ustawienia applicationPool
dotyczą wszystkich pul aplikacji uruchamianych w określonej wersji .NET Framework. Ustawienia są zawarte w pliku aspnet.config. Istnieje wersja tego pliku dla wersji 2.0 i 4.0 .NET Framework. (Wersje 3.0 i 3.5 .NET Framework współużytkuje plik aspnet.config z wersją 2.0).
Ważne
W przypadku uruchamiania usług IIS 7.0 w systemie Windows 7 można skonfigurować oddzielny plik aspnet.config dla każdej puli aplikacji. Dzięki temu można dostosować wydajność wątków dla każdej puli aplikacji.
maxConcurrentRequestsPerCPU
Dla ustawienia domyślne ustawienie "5000" w .NET Framework 4 skutecznie wyłącza ograniczanie żądań kontrolowane przez ASP.NET, chyba że w rzeczywistości masz 5000 lub więcej żądań na procesor. Ustawienie domyślne zależy zamiast tego od puli wątków CLR, aby automatycznie zarządzać współbieżnością na procesor. Aplikacje, które korzystają z asynchronicznego przetwarzania żądań lub które mają wiele długotrwałych żądań zablokowanych we/wy sieci, skorzystają ze zwiększonego limitu domyślnego w .NET Framework 4. Ustawienie maxConcurrentRequestsPerCPU
na zero wyłącza używanie zarządzanych wątków do przetwarzania żądań ASP.NET. Gdy aplikacja działa w puli aplikacji usług IIS, żądania pozostają w wątku we/wy usług IIS i dlatego współbieżność jest ograniczana przez ustawienia wątku usług IIS.
Ustawienie requestQueueLimit
działa tak samo jak requestQueueLimit
atrybut elementu processModel , który jest ustawiany w plikach Web.config dla aplikacji ASP.NET. Jednak requestQueueLimit
ustawienie w pliku aspnet.config zastępuje requestQueueLimit
ustawienie w pliku Web.config. Innymi słowy, jeśli oba atrybuty są ustawione (domyślnie jest to prawda), requestQueueLimit
ustawienie w pliku aspnet.config ma pierwszeństwo.
Przykład
W poniższym przykładzie pokazano, jak skonfigurować zachowanie ASP.NET całego procesu w pliku aspnet.config w następujących okolicznościach:
Aplikacja jest hostowana w puli aplikacji usług IIS 7.0.
Usługi IIS 7.0 działają w trybie zintegrowanym.
Aplikacja korzysta z wersji .NET Framework 3.5 SP1 lub nowszej.
Wartości w przykładzie są wartościami domyślnymi.
<configuration>
<system.web>
<applicationPool
maxConcurrentRequestsPerCPU="5000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="5000" />
</system.web>
</configuration>