ASP.NET Core ile IIS modülleri
Bazı yerel IIS modülleri ve iis tarafından yönetilen tüm modüller, uygulamalar için istekleri ASP.NET Core. Çoğu durumda, ASP.NET Core IIS yerel ve yönetilen modülleri tarafından ele alınarak ele alınan senaryolara bir alternatif sunar.
Yerel modüller
Tablosunda, ASP.NET Core uygulamalarıyla işlevsel olan yerel IIS modülleri ve ASP.NET Core gösterir.
| Modül | ASP.NET Core ile işlevsel | ASP.NET Core Seçeneği |
|---|---|---|
Anonim Kimlik DoğrulamasıAnonymousAuthenticationModule |
Yes | |
Temel Kimlik DoğrulamasıBasicAuthenticationModule |
Yes | |
İstemci Sertifikasyonu Eşleme Kimlik DoğrulamasıCertificateMappingAuthenticationModule |
Yes | |
CGICgiModule |
No | |
Yapılandırma DoğrulamasıConfigurationValidationModule |
Yes | |
HTTP HatalarıCustomErrorModule |
No | Durum Kodu Sayfaları Ara Yazılımı |
Özel Günlük KaydıCustomLoggingModule |
Yes | |
Varsayılan BelgeDefaultDocumentModule |
No | Varsayılan Dosyalar Ara Yazılımı |
Özet Kimlik DoğrulamasıDigestAuthenticationModule |
Yes | |
Dizin TaramaDirectoryListingModule |
No | Dizin Tarama Ara Yazılımı |
Dinamik SıkıştırmaDynamicCompressionModule |
Yes | Yanıt Sıkıştırma Ara Yazılımı |
Başarısız İstek İzlemeFailedRequestsTracingModule |
Yes | ASP.NET Core Günlüğü |
Dosya Önbelleğe AlmaFileCacheModule |
No | Yanıt Önbelleğe Alma Ara Yazılımı |
HTTP Önbelleğe AlmaHttpCacheModule |
No | Yanıt Önbelleğe Alma Ara Yazılımı |
HTTP Günlüğe KaydetmeHttpLoggingModule |
Yes | ASP.NET Core Günlüğü |
HTTP Yeniden YönlendirmeHttpRedirectionModule |
Yes | URL Yeniden Yazma Ara Yazılımı |
HTTP İzlemeTracingModule |
Yes | |
IIS İstemci Sertifikası Eşleme Kimlik DoğrulamasıIISCertificateMappingAuthenticationModule |
Yes | |
IP ve Etki Alanı KısıtlamalarıIpRestrictionModule |
Yes | |
ISAPI FiltreleriIsapiFilterModule |
Yes | Ara yazılım |
ISAPIIsapiModule |
Yes | Ara yazılım |
Protokol DesteğiProtocolSupportModule |
Yes | |
İstek FiltrelemeRequestFilteringModule |
Yes | URL Yeniden Yazma Ara Yazılımı IRule |
İstek İzleyicisiRequestMonitorModule |
Yes | |
URL Yeniden Yazma†RewriteModule |
Yes | URL Yeniden Yazma Ara Yazılımı |
Sunucu Tarafı DahilServerSideIncludeModule |
No | |
Statik SıkıştırmaStaticCompressionModule |
No | Yanıt Sıkıştırma Ara Yazılımı |
Statik İçerikStaticFileModule |
No | Statik Dosya Ara Yazılımı |
Belirteç Önbelleğe AlmaTokenCacheModule |
Yes | |
URI Önbelleğe AlmaUriCacheModule |
Yes | |
URL YetkilendirmesiUrlAuthorizationModule |
Yes | ASP.NET Core Identity |
Windows Kimlik DoğrulamasıWindowsAuthenticationModule |
Yes |
†URL Yeniden Yazma Modülünün ve eşleşme türlerinin dizin isFile isDirectory yapısında ASP.NET Core uygulamalarla çalışmaması.
Yönetilen modüller
Yönetilen modüller, uygulama havuzunun .NET CLR sürümü Yönetilen Kod Yok olarak ASP.NET Core barındırılan uygulamalarla işlevsel değildir. ASP.NET Core çeşitli durumlarda ara yazılım alternatifleri sunar.
| Modül | ASP.NET Core Seçeneği |
|---|---|
| Anonymousıdentification | |
| DefaultAuthentication | |
| FileAuthorization | |
| FormsAuthentication | Cookie Kimlik Doğrulama Ara Yazılımı |
| OutputCache | yanıt Önbelleğe Alma ara yazılımı |
| Profil | |
| 'Da | |
| ScriptModule-4,0 | |
| Oturum | Oturum ara yazılımı |
| UrlAuthorization | |
| UrlMappingsModule | URL yeniden yazma ara yazılımı |
| UrlRoutingModule-4,0 | ASP.NET Core Identity |
| WindowsAuthentication |
IIS Yöneticisi uygulama değişiklikleri
Ayarları yapılandırmak için IIS Yöneticisi kullanılırken, uygulamanın web.config dosyası değiştirilir. Bir uygulamayı dağıtırken ve web.config dahil olmak üzere, IIS Yöneticisi ile yapılan tüm değişiklikler dağıtılan web.config dosyası tarafından üzerine yazılır. Sunucunun web.config dosyasında değişiklik yapılırsa, sunucudaki güncelleştirilmiş web.config dosyasını hemen yerel projeye kopyalayın.
IIS modüllerini devre dışı bırakma
Bir uygulama için devre dışı bırakılması gereken sunucu düzeyinde bir IIS modülü yapılandırılırsa, uygulamanın web.config dosyasına ek olarak modülü devre dışı bırakabilirsiniz. Modülü yerinde bırakın ve bir yapılandırma ayarı (varsa) kullanarak devre dışı bırakın ya da modülü uygulamadan kaldırın.
Modül devre dışı bırakma
Birçok modül, uygulamanın modül uygulamadan kaldırılmadan devre dışı olmasına izin veren bir yapılandırma ayarı sunar. Bu, bir modülün devre dışı bırakılması için en basit ve en hızlı yoldur. Örneğin, HTTP yeniden yönlendirme modülüweb.configöğesi ile devre dışı bırakılabilir <httpRedirect> : **
<configuration>
<system.webServer>
<httpRedirect enabled="false" />
</system.webServer>
</configuration>
Yapılandırma ayarları ile modülleri devre dışı bırakma hakkında daha fazla bilgi için, <system.webServer> IIS'nin alt öğeler bölümündeki bağlantıları izleyin.
Modül kaldırma
web.config bir ayarı olan bir modülü kaldırmak istiyorsanız modülün kilidini açın ve <modules> önce web.config bölümünün kilidini açın:
Modülün kilidini sunucu düzeyinde açın. IIS Yöneticisi bağlantıları kenar çubuğundan IIS sunucusunu seçin. IIS alanında modüller ' i açın. Listeden modülü seçin. Sağdaki Eylemler kenar çubuğunda, Aç' ı seçin. Modülün eylem girdisi kilit olarak görünürse, modülün kilidi zaten açık olur ve herhangi bir eylem gerekmez. web.config daha sonra kaldırmayı planladığınız sayıda modülün kilidini açın.
Uygulamayıweb.configbir bölüm olmadan dağıtın
<modules>. ** Bir uygulama, IIS Yöneticisi 'nde ilk olarak bölümün kilidini açmadan bölüm içeren bir web.config dağıtılırsa<modules>, Configuration Manager bölümün kilidini açmaya çalışırken bir özel durum oluşturur. Bu nedenle, uygulamayı bir bölüm olmadan dağıtın<modules>.<modules>web.config bölümünün kilidini açın. Bağlantılar kenar çubuğunda sitelerde Web sitesini seçin. Yönetim alanında, yapılandırma düzenleyicisini açın. Bölümü seçmek için gezinti denetimlerini kullanınsystem.webServer/modules. Sağdaki Eylemler kenar çubuğunda, bölümün kilidini açmak için öğesini seçin. Modül bölümü için eylem girişi kilit bölümü olarak görünürse modül bölümünün kilidi zaten açık olur ve herhangi bir eylem gerekmez.<modules>Modülün uygulamadan kaldırılması için, bir öğesi ile uygulamanın yerel web.config dosyasına bir bölüm ekleyin<remove>. Birden çok<remove>modülü kaldırmak için birden çok öğe ekleyin. Sunucuda web.config değişiklik yapılırsa, projenin web.config dosyasında aynı değişiklikleri hemen yerel olarak yapın. Bu yaklaşımı kullanarak bir modülün kaldırılması, modülün sunucu üzerindeki diğer uygulamalarla kullanımını etkilemez.<configuration> <system.webServer> <modules> <remove name="MODULE_NAME" /> </modules> </system.webServer> </configuration>
web.config kullanarak IIS Express modül eklemek veya kaldırmak için, bölümün kilidini açmak üzere applicationHost.config değiştirin <modules> :
{APPLICATION root} \.vs\config\applicationhost.config açın.
<section>IIS modülleri için öğesini bulun ve 'overrideModeDefaultden 'Denyye geçinAllow:<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" /><location path="" overrideMode="Allow"><system.webServer><modules>bölümünü bulun. Kaldırmak istediğiniz modüller için, ' dan ' a ayarlayınlockItemtruefalse. Aşağıdaki örnekte, CGI modülünün kilidi açıldı:<add name="CgiModule" lockItem="false" /><modules>Bölüm ve bağımsız modüllerin kilidi açıldıktan sonra, uygulamayı IIS Express çalıştırmak için uygulamanın web.config dosyasını kullanarak IIS modüllerini ekleme veya kaldırma ücretsizdir.
Ayrıca, Appcmd.exe Ile bir IIS modülü de kaldırılabilir. MODULE_NAMEKomutuna ve komutuna şunu girin APPLICATION_NAME :
Appcmd.exe delete module MODULE_NAME /app.name:APPLICATION_NAME
Örneğin, DynamicCompressionModule varsayılan Web sitesinden öğesini kaldırın:
%windir%\system32\inetsrv\appcmd.exe delete module DynamicCompressionModule /app.name:"Default Web Site"
En düşük modül yapılandırması
ASP.NET Core bir uygulamayı çalıştırmak için gereken tek modüller, anonim kimlik doğrulama modülüdür ve ASP.NET Core modülüdür.
urı Önbelleğe Alma modülü ( UriCacheModule ), ııs 'nin URL düzeyinde web sitesi yapılandırmasını önbelleğe almasına izin verir. Bu modül olmadan, aynı URL sürekli olarak istendiği zaman bile IIS her istekte yapılandırmayı okumalı ve ayrıştıramalıdır. Yapılandırma ayrıştırılırken her istek önemli bir performans cezasına neden olur. barındırılan bir ASP.NET Core uygulamasının çalışması için urı Önbelleğe Alma modülü kesinlikle gerekli olmasa da, urı Önbelleğe Alma modülünün tüm ASP.NET Core dağıtımları için etkinleştirilmesini öneririz.
HTTP Önbelleğe Alma modülü ( HttpCacheModule ), ııs çıkış önbelleğini ve ayrıca öğeleri önbelleğe alma mantığını HTTP.sys önbelleğinde uygular. Bu modül olmadan içerik artık çekirdek modunda önbelleğe alınmaz ve önbellek profilleri yok sayılır. HTTP Önbelleğe Alma modülünü kaldırmak, genellikle performans ve kaynak kullanımındaki olumsuz etkileri vardır. barındırılan bir ASP.NET Core uygulamasının çalışması için http Önbelleğe Alma modülü kesinlikle gerekli olmasa da, http Önbelleğe Alma modülünün tüm ASP.NET Core dağıtımları için etkinleştirilmesini öneririz.