Moduly služby IIS s ASP.NET Core
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Upozorňující
Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v tématu .NET a .NET Core Zásady podpory. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Důležité
Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Některé nativní moduly SLUŽBY IIS a všechny spravované moduly IIS nemůžou zpracovávat požadavky na aplikace ASP.NET Core. V mnoha případech nabízí ASP.NET Core alternativu ke scénářům, které řeší nativní a spravované moduly služby IIS.
Nativní moduly
Tabulka označuje nativní moduly SLUŽBY IIS, které jsou funkční s aplikacemi ASP.NET Core a modulem ASP.NET Core.
Modul | Funkční s aplikacemi ASP.NET Core | možnost ASP.NET jádra |
---|---|---|
Anonymní ověřováníAnonymousAuthenticationModule |
Ano | |
Základní ověřováníBasicAuthenticationModule |
Ano | |
Ověřování mapování certifikace klientaCertificateMappingAuthenticationModule |
Ano | |
CGICgiModule |
No | |
Ověření konfiguraceConfigurationValidationModule |
Ano | |
Chyby HTTPCustomErrorModule |
No | Middleware stavových kódů |
Vlastní protokolováníCustomLoggingModule |
Ano | |
Výchozí dokumentDefaultDocumentModule |
No | Výchozí middleware souborů |
Ověřování hodnotou hashDigestAuthenticationModule |
Ano | |
Procházení adresářůDirectoryListingModule |
No | Middleware pro procházení adresářů |
Dynamická kompreseDynamicCompressionModule |
Ano | Middleware pro kompresi odpovědí |
Trasování neúspěšných požadavkůFailedRequestsTracingModule |
Ano | Protokolování jádra ASP.NET |
Ukládání souborů do mezipamětiFileCacheModule |
No | Middleware pro ukládání odpovědí do mezipaměti |
Ukládání do mezipaměti HTTPHttpCacheModule |
No | Middleware pro ukládání odpovědí do mezipaměti |
Protokolování HTTPHttpLoggingModule |
Ano | Protokolování jádra ASP.NET |
Přesměrování HTTPHttpRedirectionModule |
Ano | Middleware pro přepis adres URL |
Trasování HTTPTracingModule |
Ano | |
Ověřování mapování klientských certifikátů služby IISIISCertificateMappingAuthenticationModule |
Ano | |
Omezení IP adres a doménIpRestrictionModule |
Ano | |
Filtry ISAPIIsapiFilterModule |
Ano | Middleware |
ISAPIIsapiModule |
Ano | Middleware |
Podpora protokoluProtocolSupportModule |
Ano | |
Filtrování požadavkůRequestFilteringModule |
Ano | Middleware pro přepis adres URL IRule |
Monitorování požadavkůRequestMonitorModule |
Ano | |
Přepsání adresy URL†RewriteModule |
Ano | Middleware pro přepis adres URL |
Zahrnutí na straně serveruServerSideIncludeModule |
No | |
Statická kompreseStaticCompressionModule |
No | Middleware pro kompresi odpovědí |
Statický obsahStaticFileModule |
No | Middleware statického souboru |
Ukládání tokenů do mezipamětiTokenCacheModule |
Ano | |
Ukládání identifikátorů URI do mezipamětiUriCacheModule |
Ano | |
Autorizace adresy URLUrlAuthorizationModule |
Ano | ASP.NET Core Identity |
WebDavWebDAV |
No | |
Ověřování systému WindowsWindowsAuthenticationModule |
Ano |
†Vypis isFile
adres URL a isDirectory
typy shody modulu nefungují s aplikacemi ASP.NET Core kvůli změnám v adresářové struktuře.
Spravované moduly
Spravované moduly nejsou funkční s hostovanými aplikacemi ASP.NET Core, pokud je verze .NET CLR fondu aplikací nastavená na Žádný spravovaný kód. ASP.NET Core nabízí v několika případech alternativy middlewaru.
Modul | možnost ASP.NET jádra |
---|---|
Anonymníidentifikace | |
DefaultAuthentication | |
FileAuthorization | |
FormsAuthentication | Cookie Middleware pro ověřování |
OutputCache | Middleware pro ukládání odpovědí do mezipaměti |
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
Při konfiguraci nastavení pomocí Správce služby IIS se změní soubor web.config aplikace. Pokud nasazujete aplikaci a včetně souboru web.config, všechny změny provedené pomocí Správce služby IIS se přepíšou nasazeným souborem web.config . Pokud se změny v souboru web.config serveru provede, okamžitě zkopírujte aktualizovaný soubor web.config na serveru do místního projektu.
Zakázání modulů IIS
Pokud je modul SLUŽBY IIS nakonfigurovaný na úrovni serveru, která musí být pro aplikaci zakázaná, může doplněk souboru web.config aplikace tento modul zakázat. Buď nechte modul na místě a deaktivujte ho pomocí nastavení konfigurace (pokud je k dispozici) nebo modul z aplikace odeberte.
Deaktivace modulu
Mnoho modulů nabízí nastavení konfigurace, které umožňuje jejich zakázání bez odebrání modulu z aplikace. Jedná se o nejjednodušší a nejrychlejší způsob deaktivace modulu. Například modul http Redirection může být zakázán s elementem <httpRedirect>
web.config:
<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 serveru IIS <system.webServer>.
Odebrání modulu
Pokud se rozhodnete odebrat modul s nastavením v souboru web.config, nejprve odemkněte modul a odemkněte <modules>
oddíl web.config :
Odemkněte modul na úrovni serveru. Na bočním panelu Připojení správce služby IIS vyberte server IIS. Otevřete moduly v oblasti SLUŽBY IIS. Vyberte modul v seznamu. Na bočním panelu Akcí vpravo vyberte Odemknout. Pokud se položka akce pro modul zobrazí jako Zámek, modul je už odemknutý a nevyžaduje se žádná akce. Odemkněte tolik modulů, kolik budete chtít později odebrat z web.config .
Nasaďte aplikaci bez oddílu
<modules>
v souboru web.config. Pokud je aplikace nasazená pomocí souboru web.config obsahujícího<modules>
oddíl bez nutnosti odemknutí oddílu nejprve ve Správci služby IIS, správce konfigurace vyvolá výjimku při pokusu o odemknutí oddílu. Proto nasaďte aplikaci bez oddílu<modules>
.<modules>
Odemkněte část web.config. Na bočním panelu Připojení vyberte web na webech. V oblasti Správa otevřete Editor konfigurace. Pomocí navigačních ovládacích prvků vybertesystem.webServer/modules
oddíl. Na bočním panelu Akce vpravo vyberte odemknout oddíl. Pokud se položka akce pro oddíl modulu zobrazí jako Zamknout oddíl, oddíl modulu je už odemknutý a nevyžaduje se žádná akce.<modules>
Přidejte oddíl do místního souboru web.config aplikace s elementem<remove>
pro odebrání modulu z aplikace. Přidání více<remove>
prvků pro odebrání více modulů Pokud jsou na serveru provedeny změny web.config, okamžitě proveďte stejné změny v souboru web.config projektu místně. Odebrání modulu pomocí tohoto přístupu 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, upravte applicationHost.config a odemkněte <modules>
oddíl:
Otevřete soubor {APPLICATION ROOT}\.vs\config\applicationhost.config.
<section>
Vyhledejte element pro moduly služby IIS a změňteoverrideModeDefault
hodnotu zDeny
Allow
:<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
<location path="" overrideMode="Allow"><system.webServer><modules>
Vyhledejte oddíl. Pro všechny moduly, které chcete odebrat, nastavtelockItem
nafalse
true
hodnotu . V následujícím příkladu je modul CGI odemknutý:<add name="CgiModule" lockItem="false" />
Po odemknutí oddílu
<modules>
a jednotlivých modulů můžete přidat nebo odebrat moduly IIS pomocí souboru web.config aplikace pro spuštění aplikace ve službě IIS Express.
Modul IIS lze také odebrat pomocí Appcmd.exe. MODULE_NAME
Zadejte příkaz a APPLICATION_NAME
v příkazu:
Appcmd.exe delete module MODULE_NAME /app.name:APPLICATION_NAME
Například odeberte DynamicCompressionModule
z 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í aplikace ASP.NET Core jsou anonymní ověřovací modul a modul ASP.NET Core.
Modul ukládání identifikátoru URI do mezipaměti (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 analyzovat konfiguraci u každého požadavku, i když se stejná adresa URL opakuje. Analýza konfigurace každého požadavku vede k významnému snížení výkonu. Přestože modul ukládání identifikátorů URI do mezipaměti není výhradně nutný ke spuštění hostované aplikace ASP.NET Core, doporučujeme povolit modul ukládání identifikátorů URI do mezipaměti pro všechna nasazení ASP.NET Core.
Modul ukládání do mezipaměti HTTP (HttpCacheModule
) implementuje výstupní mezipaměť služby IIS a také logiku pro ukládání položek do mezipaměti HTTP.sys mezipaměti. Bez tohoto modulu se obsah už neukládají do mezipaměti v režimu jádra a profily mezipaměti se ignorují. Odebrání modulu http pro ukládání do mezipaměti má obvykle nepříznivý vliv na výkon a využití prostředků. Přestože modul ukládání do mezipaměti HTTP není striktně nutný ke spuštění hostované aplikace ASP.NET Core, doporučujeme povolit modul ukládání do mezipaměti HTTP pro všechna nasazení ASP.NET Core.