Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Plik
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z aktualną wersją, zobacz artykuł w wersji .NET 10.
Jest web.config to plik odczytywany przez usługi IIS i moduł ASP.NET Core w celu skonfigurowania aplikacji hostowanej za pomocą usług IIS.
Lokalizacja pliku web.config
Aby poprawnie skonfigurować moduł ASP.NET Core Module, plik web.config musi znajdować się w ścieżce głównej zawartości (zazwyczaj to ścieżka podstawowa aplikacji) wdrożonej aplikacji. Jest to ta sama lokalizacja, co ścieżka fizyczna witryny internetowej dostarczona do usług IIS. Plik web.config jest wymagany w katalogu głównym aplikacji, aby umożliwić publikowanie wielu aplikacji przy użyciu narzędzia Web Deploy.
Poufne pliki istnieją na ścieżce fizycznej aplikacji, na przykład {ASSEMBLY}.runtimeconfig.json, {ASSEMBLY}.xml (komentarze dokumentacji XML) i {ASSEMBLY}.deps.json, gdzie symbol zastępczy {ASSEMBLY} jest nazwą zestawu. Gdy plik web.config występuje i witryna jest uruchamiana normalnie, usługi IIS nie obsługują tych poufnych plików, jeśli są one żądane. Jeśli brakuje pliku web.config, został on niepoprawnie nazwany, lub nie można skonfigurować lokacji na potrzeby normalnego uruchamiania, usługi IIS mogą publicznie obsługiwać poufne pliki.
Plik web.config musi występować we wdrożeniu przez cały czas, poprawnie nazwany, i w stanie skonfigurować lokację pod kątem normalnego uruchamiania. Nigdy nie usuwaj pliku web.config z wdrożenia produkcyjnego.
Jeśli plik web.config nie występuje w projekcie, zostanie on utworzony z poprawną wartością processPath i arguments w celu skonfigurowania modułu ASP.NET Core Module i przeniesiony do opublikowanych danych wyjściowych.
Jeśli plik web.config występuje w projekcie, zostanie on przekształcony przy użyciu poprawnego processPath i arguments w celu skonfigurowania modułu ASP.NET Core Module i przeniesiony do opublikowanych danych wyjściowych. Przekształcenie nie modyfikuje ustawień konfiguracji usług IIS w pliku.
Plik web.config może zawierać dodatkowe ustawienia konfiguracji usług IIS kontrolujące aktywne moduły usług IIS. Aby uzyskać informacje na temat modułów usług IIS, które mogą przetwarzać żądania za pomocą aplikacji ASP.NET Core, zobacz temat Moduły usług IIS.
Tworzenie, przekształcanie i publikowanie pliku web.config jest obsługiwane przez obiekt docelowy MSBuild (_TransformWebConfig) po opublikowaniu projektu. Ten element docelowy znajduje się w elementach docelowych zestawu Web SDK (Microsoft.NET.Sdk.Web). Zestaw SDK jest ustawiany w górnej części pliku projektu:
<Project Sdk="Microsoft.NET.Sdk.Web">
Aby uniemożliwić przekształcanie pliku web.config za pomocą internetowego zestawu SDK, użyj właściwości <IsTransformWebConfigDisabled> w pliku projektu:
<PropertyGroup>
<IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
</PropertyGroup>
Podczas wyłączania w internetowym zestawie SDK możliwości przekształcania pliku element processPath i arguments powinien zostać ręcznie ustawiony przez dewelopera. Aby uzyskać więcej informacji, zobacz Moduł ASP.NET Core Module (ANCM) dla usług IIS.
Konfiguracja modułu podstawowego ASP.NET za pomocą polecenia web.config
Moduł ASP.NET Core jest skonfigurowany z sekcją aspNetCoresystem.webServer węzła w pliku lokacji web.config .
Następujący web.config plik jest publikowany na potrzeby wdrożenia zależnego od platformy i konfiguruje moduł ASP.NET Core do obsługi żądań lokacji:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
W przypadku wdrożenia samodzielnego opublikowano następujące web.config elementy:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\MyApp.exe"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
Właściwość jest ustawiona InheritInChildApplications na wartość , aby wskazać false , że ustawienia określone w elemecie <location> nie są dziedziczone przez aplikacje znajdujące się w podkatalogu aplikacji.
Po wdrożeniu aplikacji w usłudze aplikacja systemu Azure ścieżka jest ustawiona stdoutLogFile na \\?\%home%\LogFiles\stdout. Ścieżka zapisuje dzienniki stdout w LogFiles folderze, który jest lokalizacją automatycznie utworzoną przez usługę.
Aby uzyskać informacje na temat konfiguracji podrzędnej aplikacji usług IIS, zobacz Konfiguracja zaawansowana.
aspNetCore Atrybuty elementu
| Atrybut | opis | Wartość domyślna |
|---|---|---|
arguments |
Opcjonalny atrybut ciągu. Argumenty pliku wykonywalnego określonego w pliku |
|
disableStartUpErrorPage |
Opcjonalny atrybut logiczny. Jeśli wartość true, strona 502.5 — Niepowodzenie procesu jest pomijana, a strona kodowa stanu 502 skonfigurowana w elemencie |
false |
forwardWindowsAuthToken |
Opcjonalny atrybut logiczny. Jeśli to prawda, token jest przekazywany do procesu podrzędnego nasłuchiwania |
true |
hostingModel |
Opcjonalny atrybut ciągu. Określa model hostingu jako proces ( |
OutOfProcess
/
outofprocess gdy nie jest obecny |
processesPerApplication |
Opcjonalny atrybut liczby całkowitej. Określa liczbę wystąpień procesu określonego †Do hostingu w procesie wartość jest ograniczona do Ustawienie |
Domyślnie: 1Min: 1Maksymalna: 100† |
processPath |
Wymagany atrybut ciągu. Ścieżka do pliku wykonywalnego, który uruchamia proces nasłuchiwania żądań HTTP. Ścieżki względne są obsługiwane. Jeśli ścieżka zaczyna się od |
|
rapidFailsPerMinute |
Opcjonalny atrybut liczby całkowitej. Określa liczbę przypadków, w których proces określony w Nieobsługiwane w przypadku hostingu w procesie. |
Domyślnie: 10Min: 0Max: 100 |
requestTimeout |
Opcjonalny atrybut przedziału czasu. Określa czas trwania, przez który moduł ASP.NET Core czeka na odpowiedź z procesu nasłuchiwania na %ASPNETCORE_PORT%. W wersjach modułu ASP.NET Core dostarczanego z wydaniem ASP.NET Core 2.1 lub nowszym Nie ma zastosowania do hostingu w procesie. W przypadku hostingu w procesie moduł czeka na przetworzenie żądania przez aplikację. Prawidłowe wartości dla segmentów ciągu w minutach i sekundach znajdują się w zakresie od 0 do 59.
|
Domyślnie: 00:02:00Min (minimalna): 00:00:00Max: 360:00:00 |
shutdownTimeLimit |
Opcjonalny atrybut liczby całkowitej. Czas trwania w sekundach oczekiwania modułu na bezproblemowe zamknięcie pliku wykonywalnego po |
Domyślnie: 10Min: 0Max: 600 |
startupTimeLimit |
Opcjonalny atrybut liczby całkowitej. Czas trwania w sekundach oczekiwania modułu na uruchomienie procesu nasłuchiwania na porcie. Jeśli ten limit czasu zostanie przekroczony, moduł zabije ten proces. W przypadku hostowania procesu: proces nie jest uruchamiany ponownie i nie używa Podczas hostowania procesu poza procesem: moduł próbuje ponownie uruchomić proces po odebraniu nowego żądania i kontynuuje próbę ponownego uruchomienia procesu na kolejnych żądaniach przychodzących, chyba że aplikacja nie rozpocznie się Wartość 0 (zero) nie jest uważana za nieskończony limit czasu. |
Domyślnie: 120Min: 0Max: 3600 |
stdoutLogEnabled |
Opcjonalny atrybut logiczny. Jeśli wartość true, |
false |
stdoutLogFile |
Opcjonalny atrybut ciągu. Określa względną lub bezwzględną ścieżkę pliku, dla której |
aspnetcore-stdout |
Ustawianie zmiennych środowiskowych
Zmienne środowiskowe można określić dla procesu w atrybucie processPath . Określ zmienną środowiskową z <environmentVariable> elementem podrzędnym <environmentVariables> elementu kolekcji. Zmienne środowiskowe ustawione w tej sekcji mają pierwszeństwo przed zmiennymi środowiskowymi systemu.
W poniższym przykładzie ustawiono dwie zmienne środowiskowe w pliku web.config.
ASPNETCORE_ENVIRONMENT Konfiguruje środowisko aplikacji na Development. Deweloper może tymczasowo ustawić tę wartość w pliku, web.config aby wymusić załadowanie strony wyjątku dewelopera podczas debugowania wyjątku aplikacji.
CONFIG_DIR to przykład zmiennej środowiskowej zdefiniowanej przez użytkownika, w której deweloper napisał kod, który odczytuje wartość podczas uruchamiania, aby utworzyć ścieżkę ładowania pliku konfiguracji aplikacji.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
<environmentVariable name="CONFIG_DIR" value="f:\application_config" />
</environmentVariables>
</aspNetCore>
Uwaga
Alternatywą dla ustawienia środowiska bezpośrednio w programie web.config jest dołączenie <EnvironmentName> właściwości do profilu publikowania (.pubxml) lub pliku projektu. To podejście ustawia środowisko w web.config momencie opublikowania projektu:
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
Ostrzeżenie
Ustaw zmienną ASPNETCORE_ENVIRONMENT środowiskową Development tylko na serwery przejściowe i testowe, które nie są dostępne dla niezaufanych sieci, takich jak Internet.
Konfiguracja usług IIS za pomocą polecenia web.config
Na konfigurację usług IIS wpływa <system.webServer> sekcja scenariuszy web.config usług IIS, które działają dla aplikacji ASP.NET Core z modułem ASP.NET Core. Na przykład konfiguracja usług IIS jest funkcjonalna dla kompresji dynamicznej. Jeśli usługi IIS są skonfigurowane na poziomie serwera do korzystania z kompresji dynamicznej, <urlCompression> element w pliku aplikacji web.config może wyłączyć go dla aplikacji ASP.NET Core.
Aby uzyskać więcej informacji, zobacz następujące tematy:
-
Dokumentacja konfiguracji dla
<system.webServer> - Moduł ASP.NET Core (ANCM) dla usług IIS
- Moduły usług IIS z platformą ASP.NET Core
Aby ustawić zmienne środowiskowe dla poszczególnych aplikacji działających w izolowanych pulach aplikacji (obsługiwanych dla usług IIS 10.0 lub nowszych), zobacz AppCmd.exe sekcję poleceń w temacie Zmienne <environmentVariables> środowiskowe w dokumentacji referencyjnej usług IIS.
Sekcje konfiguracji web.config
Sekcje konfiguracji aplikacji ASP.NET 4.x w programie web.config nie są używane przez aplikacje ASP.NET Core do konfiguracji:
<system.web><appSettings><connectionStrings><location>
Aplikacje ASP.NET Core są konfigurowane przy użyciu innych dostawców konfiguracji. Aby uzyskać więcej informacji, zobacz Konfiguracja.
Przekształcanie pliku web.config
Jeśli musisz przekształcić web.config podczas publikowania, zobacz Przekształcanie web.config. Może być konieczne przekształcenie web.config podczas publikowania w celu ustawienia zmiennych środowiskowych na podstawie konfiguracji, profilu lub środowiska.