Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Det här är inte den senaste versionen av den här artikeln. Den aktuella versionen finns i .NET 10-versionen av den här artikeln.
Varning
Den här versionen av ASP.NET Core stöds inte längre. Mer information finns i supportpolicyn för .NET och .NET Core. För den nuvarande utgåvan, se .NET 9-versionen av den här artikeln .
Vissa av de interna IIS-modulerna och alla IIS-hanterade moduler kan inte bearbeta begäranden för ASP.NET Core-appar. I många fall erbjuder ASP.NET Core ett alternativ till de scenarier som hanteras av interna och hanterade IIS-moduler.
Inbyggda moduler
Tabellen anger interna IIS-moduler som fungerar med ASP.NET Core-appar och ASP.NET Core-modulen.
| Modul | Fungerar med ASP.NET Core-appar | ASP.NET Core-alternativ |
|---|---|---|
Anonym autentiseringAnonymousAuthenticationModule |
Yes | |
Grundläggande autentiseringBasicAuthenticationModule |
Yes | |
Klientcertifieringsmappning för autentiseringCertificateMappingAuthenticationModule |
Yes | |
CGICgiModule |
Nej | |
KonfigurationsverifieringConfigurationValidationModule |
Yes | |
HTTP-felCustomErrorModule |
Nej | Mellanprogram för statuskodsidor |
Anpassad loggningCustomLoggingModule |
Yes | |
StandarddokumentDefaultDocumentModule |
Nej | Mellanprogram för standardfiler |
Sammanfattad autentiseringDigestAuthenticationModule |
Yes | |
KatalogbläddringDirectoryListingModule |
Nej | Katalogbläddring mellanprogram |
Dynamisk komprimeringDynamicCompressionModule |
Yes | Mellanprogram för svarskomprimering |
Spårning av misslyckade begärandenFailedRequestsTracingModule |
Yes | ASP.NET Core-loggning |
Cachelagring av filerFileCacheModule |
Nej | Cachelagring av svar mellanprogram |
HTTP-cachningHttpCacheModule |
Nej | Cachelagring av svar mellanprogram |
HTTP-loggningHttpLoggingModule |
Yes | ASP.NET Core-loggning |
HTTP-omdirigeringHttpRedirectionModule |
Yes | Mellanprogramvara för URL-omskrivning |
HTTP-spårningTracingModule |
Yes | |
Mappningsautentisering för IIS-klientcertifikatIISCertificateMappingAuthenticationModule |
Yes | |
IP- och domänbegränsningarIpRestrictionModule |
Yes | |
ISAPI-filterIsapiFilterModule |
Yes | Middleware |
ISAPIIsapiModule |
Yes | Middleware |
ProtokollstödProtocolSupportModule |
Yes | |
BegärandefiltreringRequestFilteringModule |
Yes |
URL-omskrivning av mellanprogram IRule |
Övervakare av begäranRequestMonitorModule |
Yes | |
URL-omskrivning†RewriteModule |
Yes | Mellanprogramvara för URL-omskrivning |
Server-Side inkluderarServerSideIncludeModule |
Nej | |
Statisk komprimeringStaticCompressionModule |
Nej | Mellanprogram för svarskomprimering |
Statiskt innehållStaticFileModule |
Nej | Mellanprogram för statisk fil |
Token-cachelagringTokenCacheModule |
Yes | |
URI-cachingUriCacheModule |
Yes | |
URL-auktoriseringUrlAuthorizationModule |
Yes | ASP.NET Core Identity |
WebDavWebDAV |
Nej | |
Windows-autentiseringWindowsAuthenticationModule |
Yes |
†URL-omskrivningsmodulens isFile och isDirectory matchningstyper fungerar inte med ASP.NET Core-applikationer på grund av ändringar i katalogstrukturen.
Hanterade moduler
Hanterade moduler fungerar inte med värdbaserade ASP.NET Core-appar när apppoolens .NET CLR-version är inställd på Ingen hanterad kod. ASP.NET Core erbjuder mellanprogramsalternativ i flera fall.
| Modul | ASP.NET Core-alternativ |
|---|---|
| AnonymousIdentification | |
| DefaultAuthentication (Standardautentisering) | |
| Filauktorisering | |
| FormsAuthentication | Cookie Mellanprogram för autentisering |
| OutputCache | Cachelagring av svar mellanprogram |
| Profile | |
| Rollhanterare | |
| ScriptModule-4.0 | |
| Session | Sessionsmellanprogram |
| UrlAuthorization | |
| UrlMappingsModule | Mellanprogramvara för URL-omskrivning |
| UrlRoutingModule-4.0 | ASP.NET Core Identity |
| Windows-autentisering |
Ändringar i IIS Manager-program
När du använder IIS Manager för att konfigurera inställningar ändras appensweb.config fil. Om du distribuerar en app och inkluderar web.configskrivs alla ändringar som görs med IIS Manager över av den distribuerade web.config-filen . Om ändringar görs i serverns web.config-fil kopierar du den uppdaterade web.config filen på servern till det lokala projektet omedelbart.
Inaktivera IIS-moduler
Om en IIS-modul har konfigurerats på servernivå som måste inaktiveras för en app kan ett tillägg till appens web.config-fil inaktivera modulen. Lämna antingen modulen på plats och inaktivera den med hjälp av en konfigurationsinställning (om det är tillgängligt) eller ta bort modulen från appen.
Modul inaktivering
Många moduler erbjuder en konfigurationsinställning som gör att de kan inaktiveras utan att ta bort modulen från appen. Det här är det enklaste och snabbaste sättet att inaktivera en modul. Till exempel kan HTTP-omdirigeringsmodulen inaktiveras med elementet <httpRedirect> i web.config:
<configuration>
<system.webServer>
<httpRedirect enabled="false" />
</system.webServer>
</configuration>
Mer information om hur du inaktiverar moduler med konfigurationsinställningar finns på länkarna i avsnittet Underordnade element i IIS <system.webServer>.
Borttagning av modul
Om du väljer att ta bort en modul med en inställning i web.configlåser du upp modulen och låser upp <modules> avsnittet iweb.config först:
Lås upp modulen på servernivå. Välj IIS-servern i sidofältet IIS Manager-anslutningar . Öppna modulerna i IIS-området . Välj modulen i listan. I sidofältet Åtgärder till höger väljer du Lås upp. Om åtgärdsposten för modulen visas som Lås är modulen redan upplåst och ingen åtgärd krävs. Lås upp så många moduler som du planerar att ta bort från web.config senare.
Distribuera appen utan ett
<modules>avsnitt i web.config. Om en app distribueras med en web.config som innehåller<modules>avsnittet utan att först ha låst upp avsnittet i IIS-hanteraren genererar Configuration Manager ett undantag när du försöker låsa upp avsnittet. Distribuera därför appen utan ett<modules>avsnitt.Lås upp avsnittet i
<modules>web.config. I sidofältet Anslutningar väljer du webbplatsen i Webbplatser. Öppna konfigurationsredigeraren i området Hantering. Använd navigeringskontrollerna för att välja avsnittetsystem.webServer/modules. I sidofältet Åtgärder till höger väljer du för att låsa upp avsnittet. Om åtgärdsposten för modulavsnittet visas som Lås avsnitt är modulavsnittet redan upplåst och ingen åtgärd krävs.Lägg till ett
<modules>avsnitt i appens lokala web.config-fil med ett<remove>element för att ta bort modulen från appen. Lägg till flera<remove>element för att ta bort flera moduler. Om web.config ändringar görs på servern gör du omedelbart samma ändringar i projektets web.config-fil lokalt. Om du tar bort en modul med den här metoden påverkas inte användningen av modulen med andra appar på servern.<configuration> <system.webServer> <modules> <remove name="MODULE_NAME" /> </modules> </system.webServer> </configuration>
För att lägga till eller ta bort moduler för IIS Express med web.config, ändra applicationHost.config så att <modules>-sektionen låses upp:
Öppna {APPLICATION ROOT}\.vs\config\applicationhost.config.
Leta upp elementet
<section>för IIS-moduler och ändraoverrideModeDefaultfrånDenytillAllow:<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />Hitta avsnittet
<location path="" overrideMode="Allow"><system.webServer><modules>. För alla moduler som du vill ta bort anger dulockItemfråntruetillfalse. I följande exempel är CGI-modulen olåst:<add name="CgiModule" lockItem="false" />När avsnittet
<modules>och enskilda moduler har låsts upp kan du lägga till eller ta bort IIS-moduler med hjälp av appens web.config-fil för att köra appen på IIS Express.
En IIS-modul kan också tas bort med Appcmd.exe. Ange MODULE_NAME och APPLICATION_NAME i kommandot:
Appcmd.exe delete module MODULE_NAME /app.name:APPLICATION_NAME
Ta till exempel bort DynamicCompressionModule från standardwebbplatsen:
%windir%\system32\inetsrv\appcmd.exe delete module DynamicCompressionModule /app.name:"Default Web Site"
Minsta modulkonfiguration
De enda moduler som krävs för att köra en ASP.NET Core-app är modulen anonym autentisering och ASP.NET Core-modulen.
Med URI Caching Module (UriCacheModule) kan IIS cachelagra webbplatskonfiguration på URL-nivå. Utan den här modulen måste IIS läsa och parsa konfigurationen för varje begäran, även när samma URL begärs upprepade gånger. Om du tolkar konfigurationen vid varje begäran resulterar det i ett betydande prestandastraff.
Även om URI-cachelagringsmodulen inte är strikt nödvändig för att en värdbaserad ASP.NET Core-app ska köras rekommenderar vi att URI-cachelagringsmodulen aktiveras för alla ASP.NET Core-distributioner.
HTTP-cachelagringsmodulen (HttpCacheModule) implementerar IIS-utdatacachen och även logiken för cachelagring av objekt i HTTP.sys cacheminnet. Utan den här modulen cachelagras inte längre innehåll i kernelläge och cacheprofiler ignoreras. Att ta bort HTTP-cachelagringsmodulen har vanligtvis negativa effekter på prestanda och resursanvändning.
Även om HTTP-cachelagringsmodulen inte är strikt nödvändig för att en värdbaserad ASP.NET Core-app ska köras rekommenderar vi att HTTP-cachelagringsmodulen är aktiverad för alla ASP.NET Core-distributioner.
Ytterligare resurser
ASP.NET Core