ASP.NET Core içeren IIS modülleri

Not

Bu, bu makalenin en son sürümü değildir. Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.

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.

Önemli

Bu bilgiler, ticari olarak piyasaya sürülmeden önce önemli ölçüde değiştirilebilen bir yayın öncesi ürünle ilgilidir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.

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
CGI
CgiModule
Hayır
Yapılandırma Doğrulaması
ConfigurationValidationModule
Yes
HTTP Hataları
CustomErrorModule
Hayır Durum Kodu Sayfaları Ara Yazılımı
Özel Günlük
CustomLoggingModule
Yes
Varsayılan Belge
DefaultDocumentModule
Hayır Varsayılan Dosyalar Ara Yazılımı
Özet Kimlik Doğrulaması
DigestAuthenticationModule
Yes
Dizin Tarama
DirectoryListingModule
Hayır Dizine Gözatma Ara Yazılımı
Dinamik Sıkıştırma
DynamicCompressionModule
Yes Yanıt Sıkıştırma Ara Yazılımı
Başarısız İstek İzleme
FailedRequestsTracingModule
Yes ASP.NET Çekirdek Günlüğü
Dosya Önbelleğe Alma
FileCacheModule
Hayır Yanıtları Önbelleğe Alma Ara Yazılımı
HTTP Önbelleğe Alma
HttpCacheModule
Hayır Yanıtları Önbelleğe Alma Ara Yazılımı
HTTP Günlüğü
HttpLoggingModule
Yes ASP.NET Çekirdek Günlüğü
HTTP Yeniden Yönlendirmesi
HttpRedirectionModule
Yes URL Yeniden Yazma Ara Yazılımı
HTTP İzleme
TracingModule
Yes
IIS İstemci Sertifikası Eşleme Kimlik Doğrulaması
IISCertificateMappingAuthenticationModule
Yes
IP ve Etki Alanı Kısıtlamaları
IpRestrictionModule
Yes
ISAPI Filtreleri
IsapiFilterModule
Yes Ara Yazılım
ISAPI
IsapiModule
Yes Ara Yazılım
Protokol Desteği
ProtocolSupportModule
Yes
İstek Filtreleme
RequestFilteringModule
Yes URL Yeniden Yazma Ara Yazılımı IRule
İstek İzleyicisi
RequestMonitorModule
Yes
URL Yeniden Yazma
RewriteModule
Yes URL Yeniden Yazma Ara Yazılımı
Sunucu Tarafı eklemeleri
ServerSideIncludeModule
Hayır
Statik Sıkıştırma
StaticCompressionModule
Hayır Yanıt Sıkıştırma Ara Yazılımı
Statik İçerik
StaticFileModule
Hayır Statik Dosya Ara Yazılımı
Belirteç Önbelleğe Alma
TokenCacheModule
Yes
URI Önbelleğe Alma
UriCacheModule
Yes
URL Yetkilendirmesi
UrlAuthorizationModule
Yes ASP.NET Core Identity
WebDav
WebDAV
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>:

  1. 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.

  2. 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.

  3. <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çmek system.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.

  4. <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:

  1. {APPLICATION ROOT}\.vs\config\applicationhost.config dosyasını açın.

  2. IIS modülleri için <section> öğesini bulun ve olarak Deny AllowdeğiştirinoverrideModeDefault:

    <section name="modules"
             allowDefinition="MachineToApplication"
             overrideModeDefault="Allow" />
    
  3. <location path="" overrideMode="Allow"><system.webServer><modules> Bölümünü bulun. Kaldırmak istediğiniz tüm modüller için,'den true olarak falseayarlayınlockItem. Aşağıdaki örnekte CGI Modülünün kilidi açık:

    <add name="CgiModule" lockItem="false" />
    
  4. 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