Moduly IIS s ASP.NET Core
některé z nativních modulů služby iis a všechny spravované moduly služby iis nemohou zpracovávat požadavky na aplikace ASP.NET Core. v mnoha případech ASP.NET Core nabízí alternativu k scénářům řešeným nativními a spravovanými moduly služby IIS.
Nativní moduly
tato tabulka uvádí nativní moduly služby IIS, které jsou funkční s ASP.NET Core aplikacemi a modulem ASP.NET Core.
| Modul | funkce ASP.NET Corech aplikací | ASP.NET Core Nastavení |
|---|---|---|
Anonymní ověřováníAnonymousAuthenticationModule |
Yes | |
Základní ověřeníBasicAuthenticationModule |
Yes | |
Ověřování mapování certifikace klientůCertificateMappingAuthenticationModule |
Yes | |
CGICgiModule |
No | |
Ověření konfiguraceConfigurationValidationModule |
Yes | |
Chyby protokolu HTTPCustomErrorModule |
No | Middleware stránky stavového kódu |
Vlastní protokolováníCustomLoggingModule |
Yes | |
Výchozí dokumentDefaultDocumentModule |
No | Middleware výchozích souborů |
Ověřování hodnotou hashDigestAuthenticationModule |
Yes | |
Procházení adresářůDirectoryListingModule |
No | Middleware procházení adresářů |
Dynamická kompreseDynamicCompressionModule |
Yes | Middleware pro kompresi odpovědí |
Trasování chybných žádostíFailedRequestsTracingModule |
Yes | ASP.NET Core Protokolu |
Ukládání do mezipaměti souboruFileCacheModule |
No | Ukládání do mezipaměti middleware pro odpověď |
Ukládání do mezipaměti HTTPHttpCacheModule |
No | Ukládání do mezipaměti middleware pro odpověď |
Protokolování HTTPHttpLoggingModule |
Yes | ASP.NET Core Protokolu |
Přesměrování protokolu HTTPHttpRedirectionModule |
Yes | Middleware pro přepis adres URL |
Trasování HTTPTracingModule |
Yes | |
Ověřování mapování klientských certifikátů služby IISIISCertificateMappingAuthenticationModule |
Yes | |
Omezení podle IP adresy a doményIpRestrictionModule |
Yes | |
Filtry ISAPIIsapiFilterModule |
Yes | Middleware |
ISAPIIsapiModule |
Yes | Middleware |
Podpora protokolůProtocolSupportModule |
Yes | |
Filtrování požadavkůRequestFilteringModule |
Yes | Middleware pro přepis adres URL IRule |
Sledování požadavkůRequestMonitorModule |
Yes | |
† přepsání adresy URLRewriteModule |
Yes | Middleware pro přepis adres URL |
Začlenění na straně serveruServerSideIncludeModule |
No | |
Statická kompreseStaticCompressionModule |
No | Middleware pro kompresi odpovědí |
Statický obsahStaticFileModule |
No | Middleware statických souborů |
Ukládání do mezipaměti tokenuTokenCacheModule |
Yes | |
Ukládání do mezipaměti URIUriCacheModule |
Yes | |
Autorizace adres URLUrlAuthorizationModule |
Yes | ASP.NET Core Identity |
Ověřování systému WindowsWindowsAuthenticationModule |
Yes |
†typy a porovnávání v rámci adresy isFile URL isDirectory nefungují s ASP.NET Core aplikacemi z důvodu změn ve struktuře adresářovéslužby.
Spravované moduly
spravované moduly nejsou funkční u hostovaných ASP.NET Core aplikací, pokud je verze .net CLR fondu aplikací nastavená na žádný spravovaný kód. ASP.NET Core nabízí alternativy middlewaru v několika případech.
| Modul | ASP.NET Core Nastavení |
|---|---|
| AnonymousIdentification | |
| DefaultAuthentication | |
| Autorace | |
| FormsAuthentication | Cookie Middleware ověřování |
| Outputcache | Odpověď Ukládání do mezipaměti middleware |
| Profil | |
| Rolemanager | |
| ScriptModule-4.0 | |
| Relace | Middleware relace |
| UrlAuthorization | |
| UrlMappingsModule | Middleware pro přepis adres URL |
| UrlRoutingModule-4.0 | ASP.NET Core Identity |
| WindowsAuthentication |
Změny aplikace Správce služby IIS
Pokud ke konfiguraci nastavení používáte Správce služby IIS, web.config souboru aplikace. Pokud nasazujete aplikaci a web.config, všechny změny provedené ve Správci služby IIS se přepíšou nasazenou web.config souboru. Pokud jsou provedeny změny v souboru web.config, zkopírujte aktualizovaný souborweb.configna serveru okamžitě do místního projektu.
Zakázání modulů služby IIS
Pokud je modul IIS nakonfigurovaný na úrovni serveru, který musí být pro aplikaci zakázaný, může doplněk k souboruweb.configzakázat modul. Buď ponechte modul na místě a pomocí konfiguračního nastavení (pokud je k dispozici) ho deaktivujte, nebo ho z aplikace odeberte.
Deaktivace modulu
Mnoho modulů nabízí konfigurační nastavení, které umožňuje jejich zakázaný přístup bez odebrání modulu z aplikace. Jedná se o nejjednodušší a nejrychlejší způsob deaktivace modulu. Například modul přesměrování HTTP je možné zakázat pomocí elementu vweb.config<httpRedirect> : **
<configuration>
<system.webServer>
<httpRedirect enabled="false" />
</system.webServer>
</configuration>
Další informace o zakázání modulů s nastavením konfigurace najdete na odkazech v části Podřízené elementy služby <system.webServer> IIS.
Odebrání modulu
Pokud se rozhodnete odebrat modul s nastavením v web.config, odemkněte modul a nejprve odemkněte část <modules> web.config souboru:
Odemkněte modul na úrovni serveru. Na bočním panelu Připojení Správce služby IIS vyberte server služby IIS. Otevřete Moduly v oblasti IIS. V seznamu vyberte modul . Na bočním panelu Akce na pravé straně vyberte Odemknout. Pokud se položka akce pro modul zobrazí jako Zamknout, modul je už odemčený a nevyžaduje se žádná akce. Odemkněte tolik modulů, kolik plánujete odebrat zweb.config později.
Nasaďte aplikaci bez
<modules>oddílu v web.config. Pokud je aplikace nasazená sweb.configobsahující oddíl bez odemknutí části nejprve ve Správci služby IIS, vyvolá Správce konfigurace výjimku při pokusu o odemknutí<modules>oddílu. Proto aplikaci nasaďte bez<modules>oddílu.<modules>Odemkněte část web.config. Na bočním panelu Připojení vyberte web v části Weby. V oblasti Správa otevřete Editor konfigurace. K výběru oddílu použijte navigačnísystem.webServer/modulesovládací prvky. Na bočním panelu Akce na pravé straně vyberte Odemknout oddíl. Pokud se položka akce pro oddíl modulu zobrazí jako Lock Section(Zamknout oddíl), část modulu je už odemknutá a nevyžaduje se žádná akce.Přidejte
<modules>oddíl do místního souboru web.config s elementem pro odebrání modulu<remove>z aplikace. Přidáním<remove>více prvků odeberete více modulů. Pokud web.config na serveru, okamžitě proveďte stejné změny souboru projektu v místním web.config souboru. Odebrání modulu tímto přístupem nemá vliv na použití modulu s jinými aplikacemi na serveru.<configuration> <system.webServer> <modules> <remove name="MODULE_NAME" /> </modules> </system.webServer> </configuration>
Pokud chcete přidat nebo odebrat moduly pro IIS Express pomocí web.config, applicationHost.config oddíl <modules> odemknout:
Otevřete {APPLICATION ROOT} \.vs\config\applicationhost.config.
Vyhledejte
<section>element pro moduly služby IIS aoverrideModeDefaultzměňte z naDenyAllow:<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />Vyhledejte část
<location path="" overrideMode="Allow"><system.webServer><modules>. Pro všechny moduly, které chcete odebrat, nastavte zlockItemtruenafalse. V následujícím příkladu je modul CGI odemknutý:<add name="CgiModule" lockItem="false" />Po odemknutí oddílu a jednotlivých modulů můžete přidat nebo odebrat moduly IIS pomocí souboruweb.configaplikace pro spuštění aplikace v
<modules>IIS Express.
Modul služby IIS je také možné odebrat pomocí Appcmd.exe. Do příkazu MODULE_NAME zadejte APPLICATION_NAME a :
Appcmd.exe delete module MODULE_NAME /app.name:APPLICATION_NAME
Například odeberte z DynamicCompressionModule výchozího webu:
%windir%\system32\inetsrv\appcmd.exe delete module DynamicCompressionModule /app.name:"Default Web Site"
Minimální konfigurace modulu
Jedinými moduly potřebnými ke spuštění ASP.NET Core jsou modul anonymního ověřování a modul ASP.NET Core Module.
Identifikátor URI Ukládání do mezipaměti Module ( UriCacheModule ) umožňuje službě IIS ukládat konfiguraci webu do mezipaměti na úrovni adresy URL. Bez tohoto modulu musí služba IIS číst a parsovat konfiguraci při každém požadavku, i když se opakovaně požaduje stejná adresa URL. Parsování konfigurace u každého požadavku vede k výraznému snížení výkonu. I když se Ukládání do mezipaměti uri modulu nevyžaduje výhradně ke spuštění hostované aplikace ASP.NET Core, doporučujeme, aby byl identifikátor URI Ukládání do mezipaměti Module povolený pro všechna nasazení ASP.NET Core nasazení.
Modul HTTP Ukládání do mezipaměti Module ( ) implementuje výstupní mezipaměť služby IIS a také logiku ukládání položek do mezipaměti HttpCacheModule HTTP.sys mezipaměti. Bez tohoto modulu se obsah už nebude ukládat do mezipaměti v režimu jádra a profily mezipaměti se ignorují. Odebrání modulu HTTP Ukládání do mezipaměti má obvykle nepříznivý vliv na výkon a využití prostředků. Přestože modul HTTP Ukládání do mezipaměti není nezbytně nutný ke spuštění hostované aplikace ASP.NET Core, doporučujeme povolit modul HTTP Ukládání do mezipaměti Module pro všechna nasazení ASP.NET Core nasazení.