Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z aktualną wersją, zobacz artykuł w wersji .NET 10.
Ostrzeżenie
Ta wersja ASP.NET Core nie jest już obsługiwana. Aby uzyskać więcej informacji, zobacz zasady pomocy technicznej platformy .NET i platformy .NET Core. Aby zapoznać się z aktualną wersją, zobacz artykuł w wersji .NET 10.
Niektóre z natywnych modułów usług IIS i wszystkich modułów zarządzanych przez usługi IIS nie mogą przetwarzać żądań dotyczących aplikacji ASP.NET Core. W wielu przypadkach ASP.NET Core oferuje alternatywę dla scenariuszy, które są obsługiwane przez moduły natywne i zarządzane przez usługi IIS.
Moduły natywne
Tabela wskazuje natywne moduły usług IIS, które działają z aplikacjami ASP.NET Core i modułem ASP.NET Core.
| Moduł | Działa z aplikacjami ASP.NET Core | opcja ASP.NET Core |
|---|---|---|
Uwierzytelnianie anonimoweAnonymousAuthenticationModule |
Tak | |
Uwierzytelnianie podstawoweBasicAuthenticationModule |
Tak | |
Uwierzytelnianie za pomocą mapowania certyfikatu klientaCertificateMappingAuthenticationModule |
Tak | |
CGICgiModule |
Nie. | |
Weryfikacja konfiguracjiConfigurationValidationModule |
Tak | |
Błędy HTTPCustomErrorModule |
Nie. | Oprogramowanie pośredniczące stron kodów stanu HTTP |
Rejestrowanie niestandardoweCustomLoggingModule |
Tak | |
Dokument domyślnyDefaultDocumentModule |
Nie. | Domyślne oprogramowanie pośredniczące plików |
Uwierzytelnianie szyfrowaneDigestAuthenticationModule |
Tak | |
Przeglądanie katalogówDirectoryListingModule |
Nie. | Oprogramowanie pośredniczące przeglądania katalogów |
Kompresja dynamicznaDynamicCompressionModule |
Tak | Oprogramowanie pośredniczące kompresji odpowiedzi |
Śledzenie nieudanych żądańFailedRequestsTracingModule |
Tak | Rejestrowanie zdarzeń w ASP.NET Core |
Buforowanie plikówFileCacheModule |
Nie. | Oprogramowanie pośredniczące do buforowania odpowiedzi |
Buforowanie HTTPHttpCacheModule |
Nie. | Oprogramowanie pośredniczące do buforowania odpowiedzi |
Rejestrowanie HTTPHttpLoggingModule |
Tak | Rejestrowanie zdarzeń w ASP.NET Core |
Przekierowywanie HTTPHttpRedirectionModule |
Tak | Oprogramowanie pośredniczące do przepisywania adresów URL |
Śledzenie HTTPTracingModule |
Tak | |
Uwierzytelnianie przy użyciu mapowania certyfikatów klienta w usługach IISIISCertificateMappingAuthenticationModule |
Tak | |
Ograniczenia adresów IP i domenIpRestrictionModule |
Tak | |
Filtry ISAPIIsapiFilterModule |
Tak | Oprogramowanie pośredniczące |
ISAPIIsapiModule |
Tak | Oprogramowanie pośredniczące |
Obsługa protokołuProtocolSupportModule |
Tak | |
Filtrowanie żądańRequestFilteringModule |
Tak |
Oprogramowanie pośredniczące do przepisywania adresów URL IRule |
Monitor żądańRequestMonitorModule |
Tak | |
Przepisywanie adresów URL†RewriteModule |
Tak | Oprogramowanie pośredniczące do przepisywania adresów URL |
Dołączanie po stronie serweraServerSideIncludeModule |
Nie. | |
Kompresja statycznaStaticCompressionModule |
Nie. | Oprogramowanie pośredniczące kompresji odpowiedzi |
Zawartość statycznaStaticFileModule |
Nie. | Oprogramowanie pośredniczące plików statycznych |
Buforowanie tokenówTokenCacheModule |
Tak | |
Buforowanie URIUriCacheModule |
Tak | |
Autoryzacja adresów URLUrlAuthorizationModule |
Tak | ASP.NET Core Identity |
WebDavWebDAV |
Nie. | |
Uwierzytelnianie systemu WindowsWindowsAuthenticationModule |
Tak |
†Typy dopasowania isFile i isDirectory modułu przepisywania adresów URL nie działają w przypadku aplikacji ASP.NET Core ze względu na zmiany w strukturze katalogów.
Moduły zarządzane
Moduły zarządzane nie działają w przypadku hostowanych aplikacji ASP.NET Core, gdy wersja środowiska .NET CLR puli aplikacji jest ustawiona na Brak kodu zarządzanego. ASP.NET Core oferuje alternatywy oprogramowania pośredniczącego w kilku przypadkach.
| Moduł | opcja ASP.NET Core |
|---|---|
| Identyfikacja anonimowa | |
| Domyślne uwierzytelnianie | |
| Autoryzacja pliku | |
| FormsAuthentication | Cookie oprogramowanie pośredniczące uwierzytelniania |
| OutputCache | Oprogramowanie pośredniczące do buforowania odpowiedzi |
| Profil | |
| RoleManager | |
| ScriptModule-4.0 | |
| Sesja | Oprogramowanie pośredniczące sesyjne |
| UrlAuthorization | |
| UrlMappingsModule | Middleware do przepisywania adresów URL |
| UrlRoutingModule-4.0 | ASP.NET Core Identity |
| WindowsAuthentication |
Zmiany aplikacji Menedżera usług IIS
W przypadku konfigurowania ustawień za pomocą Menedżera usług IIS plik web.config aplikacji zostanie zmieniony. W przypadku wdrażania aplikacji i dołączania pliku web.config wszelkie zmiany wprowadzone w Menedżerze usług IIS zostaną zastąpione przez wdrożony plik web.config . Jeśli zmiany zostaną wprowadzone w pliku web.config serwera, skopiuj zaktualizowany plik web.config na serwerze do projektu lokalnego natychmiast.
Wyłączanie modułów usług IIS
Jeśli moduł usług IIS jest skonfigurowany na poziomie serwera, który musi być wyłączony dla aplikacji, dodatek do pliku web.config aplikacji może wyłączyć moduł. Pozostaw moduł i zdezaktywuj go przy użyciu ustawienia konfiguracji (jeśli jest dostępne) lub usuń moduł z aplikacji.
Dezaktywacja modułu
Wiele modułów oferuje ustawienie konfiguracji, które umożliwia ich wyłączenie bez usuwania modułu z aplikacji. Jest to najprostszy i najszybszy sposób dezaktywowania modułu. Na przykład moduł przekierowania HTTP można wyłączyć za pomocą elementu w pliku <httpRedirect> web.config:
<configuration>
<system.webServer>
<httpRedirect enabled="false" />
</system.webServer>
</configuration>
Aby uzyskać więcej informacji na temat wyłączania modułów za pomocą ustawień konfiguracji, skorzystaj z łączy w sekcji Elementy podrzędne elementu IIS <system.webServer>.
Usuwanie modułu
Jeśli chcesz usunąć moduł za pomocą ustawienia w web.config, najpierw odblokuj moduł i sekcję <modules>web.config:
Odblokuj moduł na poziomie serwera. Wybierz serwer IIS na pasku bocznym Połączenia menedżera usług IIS. Otwórz moduły w obszarze IIS. Wybierz moduł z listy. Na pasku bocznym Akcje po prawej stronie wybierz pozycję Odblokuj. Jeśli pozycja akcji dla modułu jest wyświetlana jako Lock, moduł jest już odblokowany i nie trzeba podejmować żadnych działań. Odblokuj tyle modułów, ile planujesz później usunąć z pliku web.config .
Wdróż aplikację bez sekcji
<modules>w pliku web.config. Jeśli aplikacja zostanie wdrożona z plikiem web.config zawierającym sekcję<modules>bez uprzedniego odblokowania tej sekcji w Menedżerze usług IIS, program Configuration Manager zgłosi wyjątek podczas próby odblokowania tej sekcji. Dlatego wdroż aplikację bez sekcji<modules>.Odblokuj sekcję
<modules>pliku web.config. Na pasku bocznym Połączenia wybierz witrynę internetową w obszarze Witryny. W obszarze Zarządzanie otwórz Edytor konfiguracji. Użyj kontrolek nawigacji, aby wybrać sekcjęsystem.webServer/modules. Na pasku bocznym Akcje po prawej stronie wybierz pozycję Odblokuj sekcję. Jeśli wpis akcji dla sekcji modułu zostanie wyświetlony jako Sekcja blokady, sekcja modułu jest już odblokowana i nie jest wymagana żadna akcja.Dodaj sekcję
<modules>do lokalnego pliku web.config aplikacji z elementem<remove>, aby usunąć moduł z aplikacji. Dodaj wiele<remove>elementów, aby usunąć wiele modułów. Jeśli zmiany web.config zostaną wprowadzone na serwerze, natychmiast wprowadź te same zmiany w pliku web.config projektu lokalnie. Usunięcie modułu przy użyciu tego podejścia nie ma wpływu na użycie modułu z innymi aplikacjami na serwerze.<configuration> <system.webServer> <modules> <remove name="MODULE_NAME" /> </modules> </system.webServer> </configuration>
Aby dodać lub usunąć moduły w IIS Express przy użyciu pliku web.config, zmodyfikuj plik applicationHost.config, aby odblokować sekcję <modules>:
Otwórz plik {APPLICATION ROOT}\.vs\config\applicationhost.config.
Znajdź element
<section>dla modułów IIS i zmieńoverrideModeDefaultzDenynaAllow:<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />Znajdź sekcję
<location path="" overrideMode="Allow"><system.webServer><modules>. W przypadku wszystkich modułów, które chcesz usunąć, ustaw wartośćlockItemztruenafalse. W poniższym przykładzie moduł CGI jest odblokowany:<add name="CgiModule" lockItem="false" />Po odblokowaniu sekcji
<modules>oraz poszczególnych modułów możesz swobodnie dodawać lub usuwać moduły IIS w pliku web.config aplikacji podczas uruchamiania aplikacji w IIS Express.
Moduł usług IIS można również usunąć za pomocą Appcmd.exe. Podaj MODULE_NAME i APPLICATION_NAME w poleceniu:
Appcmd.exe delete module MODULE_NAME /app.name:APPLICATION_NAME
Na przykład usuń element DynamicCompressionModule z domyślnej witryny sieci Web:
%windir%\system32\inetsrv\appcmd.exe delete module DynamicCompressionModule /app.name:"Default Web Site"
Minimalna konfiguracja modułu
Jedynymi modułami wymaganymi do uruchomienia aplikacji ASP.NET Core są moduł uwierzytelniania anonimowego i moduł ASP.NET Core.
Moduł buforowania identyfikatora URI (UriCacheModule) umożliwia usługom IIS buforowanie konfiguracji witryny sieci Web na poziomie adresu URL. Bez tego modułu usługi IIS muszą odczytywać i analizować konfigurację każdego żądania, nawet jeśli ten sam adres URL jest wielokrotnie żądany. Parsowanie konfiguracji przy każdym żądaniu powoduje znaczny spadek wydajności.
Mimo że moduł buforowania identyfikatora URI nie jest ściśle wymagany do uruchomienia hostowanej aplikacji ASP.NET Core, zalecamy włączenie modułu buforowania identyfikatora URI dla wszystkich wdrożeń ASP.NET Core.
Moduł buforowania HTTP (HttpCacheModule) implementuje pamięć podręczną danych wyjściowych usług IIS, a także logikę buforowania elementów w pamięci podręcznej HTTP.sys. Bez tego modułu zawartość nie jest już buforowana w trybie jądra, a profile pamięci podręcznej są ignorowane. Usunięcie modułu buforowania HTTP zwykle ma negatywny wpływ na wydajność i użycie zasobów.
Mimo że moduł buforowania HTTP nie jest ściśle wymagany do uruchomienia hostowanej aplikacji ASP.NET Core, zalecamy włączenie modułu buforowania HTTP dla wszystkich wdrożeń ASP.NET Core.