ASP.NET Core içeren IIS modülleri
Uyarı
ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.
Bazı yerel IIS modülleri ve IIS tarafından yönetilen modüllerin tümü ASP.NET Core uygulamalarına yönelik istekleri işleyemez. Çoğu durumda ASP.NET Core, IIS yerel ve yönetilen modülleri tarafından ele alınan senaryolara bir alternatif sunar.
Yerel modüller
Tablo, ASP.NET Core uygulamaları ve ASP.NET Çekirdek Modülü ile işlevsel yerel IIS modüllerini gösterir.
Modül | ASP.NET Core uygulamalarıyla işlevsel | ASP.NET Çekirdek Seçeneği |
---|---|---|
Anonim Kimlik DoğrulamasıAnonymousAuthenticationModule |
Yes | |
Temel Kimlik DoğrulamasıBasicAuthenticationModule |
Yes | |
İstemci Sertifikası Eşleme Kimlik DoğrulamasıCertificateMappingAuthenticationModule |
Yes | |
CGICgiModule |
Hayır | |
Yapılandırma DoğrulamasıConfigurationValidationModule |
Yes | |
HTTP HatalarıCustomErrorModule |
Hayır | Durum Kodu Sayfaları Ara Yazılımı |
Özel GünlükCustomLoggingModule |
Yes | |
Varsayılan BelgeDefaultDocumentModule |
Hayır | Varsayılan Dosyalar Ara Yazılımı |
Özet Kimlik DoğrulamasıDigestAuthenticationModule |
Yes | |
Dizin TaramaDirectoryListingModule |
Hayır | Dizine Gözatma 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 Çekirdek Günlüğü |
Dosya Önbelleğe AlmaFileCacheModule |
Hayır | Yanıtları Önbelleğe Alma Ara Yazılımı |
HTTP Önbelleğe AlmaHttpCacheModule |
Hayır | Yanıtları Önbelleğe Alma Ara Yazılımı |
HTTP GünlüğüHttpLoggingModule |
Yes | ASP.NET Çekirdek Günlüğü |
HTTP Yeniden YönlendirmesiHttpRedirectionModule |
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ı eklemeleriServerSideIncludeModule |
Hayır | |
Statik SıkıştırmaStaticCompressionModule |
Hayır | Yanıt Sıkıştırma Ara Yazılımı |
Statik İçerikStaticFileModule |
Hayır | Statik Dosya Ara Yazılımı |
Belirteç Önbelleğe AlmaTokenCacheModule |
Yes | |
URI Önbelleğe AlmaUriCacheModule |
Yes | |
URL YetkilendirmesiUrlAuthorizationModule |
Yes | ASP.NET Core Identity |
WebDavWebDAV |
Hayır | |
Windows Kimlik DoğrulamasıWindowsAuthenticationModule |
Yes |
† Url Yeniden Yazma Modülü isFile
ve isDirectory
eşleştirme türleri, dizin yapısındaki değişiklikler nedeniyle ASP.NET Core uygulamalarıyla çalışmaz.
Yönetilen modüller
Yönetilen modüller, uygulama havuzunun .NET CLR sürümü Yönetilen Kod Yok olarak ayarlandığında barındırılan ASP.NET Core uygulamalarıyla çalışmaz. ASP.NET Core, çeşitli durumlarda ara yazılım alternatifleri sunar.
Modül | ASP.NET Çekirdek Seçeneği |
---|---|
AnonimLeştirme | |
DefaultAuthentication | |
FileAuthorization | |
FormsAuthentication | Cookie Kimlik Doğrulama Ara Yazılımı |
OutputCache | Yanıtları Önbelleğe Alma Ara Yazılımı |
Profil | |
RoleManager | |
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 uygulama dağıtılıyorsa ve web.config dahil olmak üzere, IIS Yöneticisi ile yapılan değişikliklerin üzerine dağıtılan web.config dosyası 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 IIS modülü, bir uygulama için devre dışı bırakılması gereken sunucu düzeyinde yapılandırılmışsa, uygulamanın web.config dosyasına ek olarak modülü devre dışı bırakabilir. Modülü yerinde bırakın ve bir yapılandırma ayarı kullanarak (varsa) devre dışı bırakın veya modülü uygulamadan kaldırın.
Modül devre dışı bırakma
Birçok modül, modülü uygulamadan kaldırmadan devre dışı bırakmalarını sağlayan bir yapılandırma ayarı sunar. Bu, modülü devre dışı bırakmanın en basit ve en hızlı yoludur. Örneğin, HTTP Yeniden Yönlendirme Modülü web.config içindeki öğesiyle <httpRedirect>
devre dışı bırakılabilir:
<configuration>
<system.webServer>
<httpRedirect enabled="false" />
</system.webServer>
</configuration>
Modülleri yapılandırma ayarlarıyla devre dışı bırakma hakkında daha fazla bilgi için IIS system.webServer'ın >Alt Öğeler bölümündeki bağlantıları izleyin.<
Modül kaldırma
Web.config'de bir ayarı olan bir modülü kaldırmayı tercih ediyorsanız önce modülün kilidini açın ve önce web.config bölümünün kilidini açın<modules>
:
Modülün kilidini sunucu düzeyinde açın. IIS Yöneticisi Bağlantıları kenar çubuğunda IIS sunucusunu seçin. IIS alanında Modülleri açın. Listeden modülü seçin. Sağdaki Eylemler kenar çubuğunda Kilidi Aç'ı seçin. Modülün eylem girişi Kilit olarak görünüyorsa modülün kilidi zaten açıktır ve hiçbir eylem gerekmez. Daha sonra web.config dosyasından kaldırmayı planladığınız kadar modülün kilidini açın.
Uygulamayı web.config içinde bir
<modules>
bölüm olmadan dağıtın. Bir uygulama, IIS Yöneticisi'nde önce bölümün<modules>
kilidini açmadan bölümü içeren bir web.config ile dağıtılırsa, Configuration Manager bölümün kilidini açmayı denerken bir özel durum oluşturur. Bu nedenle, uygulamayı bölüm<modules>
olmadan dağıtın.<modules>
web.config bölümünün kilidini açın. Bağlantılar kenar çubuğunda Siteler'de web sitesini seçin. Yönetim alanında Yapılandırma Düzenleyicisi'ni açın. Bölümü seçmeksystem.webServer/modules
için gezinti denetimlerini kullanın. Sağdaki Eylemler kenar çubuğunda Bölümün kilidini aç'ı seçin. Modül bölümünün eylem girişi Bölümü Kilitle olarak görünüyorsa modül bölümünün kilidi zaten açıktır ve hiçbir eylem gerekmez.<modules>
Modülü uygulamadan kaldırmak için bir öğesiyle uygulamanın yerel web.config dosyasına bir<remove>
bölüm ekleyin. Birden çok<remove>
modülü kaldırmak için birden çok öğe ekleyin. Sunucuda web.config değişiklikleri yapılırsa, aynı değişiklikleri projenin web.config dosyasında yerel olarak hemen yapın. Bu yaklaşımı kullanarak bir modülün kaldırılması, modülün sunucudaki 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üllerini eklemek veya kaldırmak için applicationHost.config dosyasını değiştirerek bölümün <modules>
kilidini açın:
{APPLICATION ROOT}\.vs\config\applicationhost.config dosyasını açın.
IIS modülleri için
<section>
öğesini bulun ve olarakDeny
Allow
değiştirinoverrideModeDefault
:<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
<location path="" overrideMode="Allow"><system.webServer><modules>
Bölümünü bulun. Kaldırmak istediğiniz tüm modüller için,'dentrue
olarakfalse
ayarlayınlockItem
. Aşağıdaki örnekte CGI Modülünün kilidi açık:<add name="CgiModule" lockItem="false" />
Bölümün ve tek tek modüllerin
<modules>
kilidi kaldırıldıktan sonra, uygulamayı IIS Express'te çalıştırmak için uygulamanın web.config dosyasını kullanarak IIS modülleri ekleyebilir veya kaldırabilirsiniz.
Iis modülü Appcmd.exe ile de kaldırılabilir. komutunda MODULE_NAME
ve APPLICATION_NAME
değerini sağlayın:
Appcmd.exe delete module MODULE_NAME /app.name:APPLICATION_NAME
Örneğin, Varsayılan Web Sitesinden öğesini kaldırın DynamicCompressionModule
:
%windir%\system32\inetsrv\appcmd.exe delete module DynamicCompressionModule /app.name:"Default Web Site"
En düşük modül yapılandırması
ASP.NET Core uygulamasını çalıştırmak için gereken tek modüller Anonim Kimlik Doğrulama Modülü ve ASP.NET Çekirdek Modülü'lerdir.
URI Önbelleğe Alma Modülü (UriCacheModule
), IIS'nin web sitesi yapılandırmasını URL düzeyinde önbelleğe almasına olanak tanır. Bu modül olmadan, aynı URL tekrar tekrar istendiğinde bile IIS'nin her istekte yapılandırmayı okuması ve ayrıştırması gerekir. Yapılandırmanın her istek ayrıştırılması önemli bir performans cezasına neden olur. Barındırılan ASP.NET Core uygulamasının çalışması için URI Önbelleğe Alma Modülü kesinlikle gerekli olmasa da, tüm ASP.NET Core dağıtımları için URI Önbelleğe Alma Modülü'nin etkinleştirilmesini öneririz.
HTTP Önbelleğe Alma Modülü (HttpCacheModule
), IIS çıkış önbelleğini ve HTTP.sys önbelleğindeki öğeleri önbelleğe alma mantığını uygular. Bu modül olmadan içerik artık çekirdek modunda önbelleğe alınmaz ve önbellek profilleri yoksayılır. HTTP Önbelleğe Alma Modülünün kaldırılması genellikle performans ve kaynak kullanımı üzerinde olumsuz etkilere neden olur. Barındırılan ASP.NET Core uygulamasının çalışması için HTTP Önbelleğe Alma Modülü kesinlikle gerekli olmasa da tüm ASP.NET Çekirdek dağıtımları için HTTP Önbelleğe Alma Modülü'nin etkinleştirilmesini öneririz.
Ek kaynaklar
ASP.NET Core