Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Bu, bu makalenin en son sürümü değildir. Geçerli sürüm için bu makalenin .NET 10 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 9 sürümüne bakın.
web.config, IIS ile barındırılan bir uygulamayı yapılandırmak için IIS ve ASP.NET Core Modülü tarafından okunan bir dosyadır.
web.config dosyasının konumu
ASP.NET Core Modülü'nü doğru ayarlayabilmek için, dağıtılan uygulamanın web.config yolunda (tipik olarak uygulama temel yolu) dosyası mevcut olmalıdır. Bu, IIS'ye sağlanan web sitesi fiziksel yoluyla aynı konumdur. Web Dağıtımı'nı kullanarak birden fazla uygulamanın yayımlanmasını sağlamak için uygulamanın kökünde web.config dosyasının bulunması gereklidir.
Uygulamanın fiziksel yolunda {ASSEMBLY}.runtimeconfig.json, {ASSEMBLY}.xml (XML Belgeleri açıklamaları) ve {ASSEMBLY}.deps.json gibi (burada {ASSEMBLY} yer tutucusu derleme adıdır) gibi hassas dosyalar bulunur.
web.config dosyası mevcut olduğunda ve site normal şekilde başlatıldığında, bu hassas dosyalar istenirse ISS bunları kullanıma sunmaz.
web.config dosyası yoksa, yanlış adlandırıldıysa veya siteyi normal başlatma için yapılandıramazsa, IIS hassas dosyaları genel kullanıma sunabilir.
web.config dosyası dağıtımda her zaman doğru adlandırılmış olarak ve siteyi normal başlatma için yapılandırabilecek şekilde mevcut olmalıdır.
web.config dosyasını hiçbir zaman üretim dağıtımından kaldırmayın.
Projede web.config dosyası yoksa, dosya ASP.NET Core Modülü'nü yapılandırmak için doğru processPath ve arguments ile oluşturulur ve yayımlanan çıkışa taşınır.
Projede web.config dosyası varsa, dosya ASP.NET Core Modülü'nü yapılandırmak için doğru processPath ve arguments ile dönüştürülür ve yayımlanan çıkışa taşınır. Dönüşüm dosyadaki IIS yapılandırma ayarlarını değiştirmez.
web.config dosyası etkin IIS modüllerini denetleyen ek IIS yapılandırma ayarları sağlayabilir. ASP.NET Core uygulamalarıyla istekleri işleyebilen IIS modülleri hakkında bilgi için IIS modülleri konusuna bakın.
web.config dosyasını oluşturma, dönüştürme ve yayımlama işlemleri proje yayımlandığında MSBuild hedefi (_TransformWebConfig) tarafından gerçekleştirilir. Bu hedef, Web SDK'sı hedefleri (Microsoft.NET.Sdk.Web) arasında yer alır. SDK, proje dosyasının üst kısmında ayarlanır:
<Project Sdk="Microsoft.NET.Sdk.Web">
Web SDK'sının web.config dosyasını dönüştürmesini önlemek için proje dosyasındaki <IsTransformWebConfigDisabled> özelliğini kullanın:
<PropertyGroup>
<IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
</PropertyGroup>
Web SDK'sının dosyayı dönüştürmesi devre dışı bırakıldığında processPath ve arguments geliştirici tarafından el ile ayarlanmalıdır. Daha fazla bilgi için bkz. IIS için ASP.NET Core Modülü (ANCM).
ile ASP.NET Çekirdek Modülü yapılandırması web.config
ASP.NET Çekirdek Modülü, sitenin aspNetCore dosyasındaki system.webServer düğümün bölümüyle web.config yapılandırılır.
Aşağıdaki web.config dosya, çerçeveye bağımlı bir dağıtım için yayımlanır ve site isteklerini işlemek için ASP.NET Çekirdek Modülünü yapılandırılır:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
Bağımsız dağıtım web.configiçin aşağıdakiler yayımlanır:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\MyApp.exe"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
InheritInChildApplications özelliği, öğesinde false belirtilen ayarların uygulamanın alt dizininde bulunan uygulamalar tarafından devralınmadığını belirtmek için ayarlanır<location>.
Bir uygulama Azure Uygulaması Hizmetine stdoutLogFileyol olarak \\?\%home%\LogFiles\stdoutayarlanır. Yol, stdout günlüklerini LogFiles hizmet tarafından otomatik olarak oluşturulan bir konum olan klasöre kaydeder.
IIS alt uygulama yapılandırması hakkında bilgi için bkz . Gelişmiş yapılandırma.
öğesinin aspNetCore öznitelikleri
| Öznitelik | Açıklama | Varsayılan |
|---|---|---|
arguments |
İsteğe bağlı dize özniteliği. içinde |
|
disableStartUpErrorPage |
İsteğe bağlı Boole özniteliği. True ise, 502.5 - İşlem Hatası sayfası gösterilmez ve içinde |
false |
forwardWindowsAuthToken |
İsteğe bağlı Boole özniteliği. True ise belirteç, istek başına 'MS-ASPNETCORE-WINAUTHTOKEN' üst bilgisi olarak dinleyen |
true |
hostingModel |
İsteğe bağlı dize özniteliği. Barındırma modelini işlem içi ( |
OutOfProcess
/
outofprocess mevcut olmadığında |
processesPerApplication |
İsteğe bağlı tamsayı özniteliği. Ayarda †İslem içi barındırma için değeri ile Ayar |
Varsayılan: 1Min: 1Maksimum: 100† |
processPath |
Gerekli dize özniteliği. HTTP isteklerini dinleyen bir işlemi başlatan yürütülebilir dosyanın yolu. Göreli yollar desteklenir. Yol ile |
|
rapidFailsPerMinute |
İsteğe bağlı tamsayı özniteliği. içinde İşlem içi barındırma ile desteklenmez. |
Varsayılan: 10Min: 0Max: 100 |
requestTimeout |
İsteğe bağlı zaman aralığı özniteliği. ASP.NET Çekirdek Modülünün %ASPNETCORE_PORT% tarihinde dinleyen işlemden yanıt bekleme süresini belirtir. ASP.NET Core 2.1 veya sonraki sürümleriyle birlikte gönderilen ASP.NET Core Modülü sürümlerinde, saat, İşlem içi barındırma için geçerli değildir. İşlem içi barındırma için modül, uygulamanın isteği işlemesini bekler. Dizenin dakika ve saniye segmentleri için geçerli değerler 0-59 aralığındadır.
|
Varsayılan: 00:02:00Min: 00:00:00Max: 360:00:00 |
shutdownTimeLimit |
İsteğe bağlı tamsayı özniteliği. Dosya algılandığında |
Varsayılan: 10Min: 0Max: 600 |
startupTimeLimit |
İsteğe bağlı tamsayı özniteliği. Modülün yürütülebilir dosyanın bağlantı noktasını dinleyen bir işlem başlatmasını beklediği saniye cinsinden süre. Bu süre sınırı aşılırsa modül işlemi sonlandıracaktır. İşlem içinde barındırılırken İşlem dışı barındırılırken: Modül, yeni bir istek aldığında işlemi yeniden başlatmayı dener ve uygulama son sıralı dakikada kaç kez başlatamadığı sürece sonraki gelen isteklerde işlemi yeniden başlatmayı 0 (sıfır) değeri sonsuz zaman aşımı olarak kabul edilmez . |
Varsayılan: 120Min: 0Max: 3600 |
stdoutLogEnabled |
İsteğe bağlı Boole özniteliği. True |
false |
stdoutLogFile |
İsteğe bağlı dize özniteliği. ve içinde belirtilen |
aspnetcore-stdout |
Ortam değişkenlerini belirleme
Öznitelikteki processPath işlem için ortam değişkenleri belirtilebilir. Bir koleksiyon öğesinin <environmentVariable> alt öğesiyle bir <environmentVariables> ortam değişkeni belirtin. Bu bölümde ayarlanan ortam değişkenleri, sistem ortam değişkenlerine göre önceliklidir.
Aşağıdaki örnek içinde web.configiki ortam değişkeni ayarlar.
ASPNETCORE_ENVIRONMENT , uygulamanın ortamını olarak Developmentyapılandırıyor. Bir geliştirici, uygulama özel durumu hata ayıklaması yaparken Geliştirici Özel Durum Sayfası'nı web.config yüklemeye zorlamak için dosyada bu değeri geçici olarak ayarlayabilir.
CONFIG_DIR , geliştiricinin uygulamanın yapılandırma dosyasını yüklemek için bir yol oluşturmak üzere başlangıçta değerini okuyan bir kod yazdığı kullanıcı tanımlı ortam değişkeni örneğidir.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
<environmentVariable name="CONFIG_DIR" value="f:\application_config" />
</environmentVariables>
</aspNetCore>
Not
Ortamı doğrudan içinde web.config ayarlamanın bir alternatifi, özelliği yayımlama profiline <EnvironmentName> (.pubxml) veya proje dosyasına eklemektir. Bu yaklaşım, proje yayımlandığında ortamını web.config ayarlar:
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
Uyarı
Ortam değişkenini ASPNETCORE_ENVIRONMENTDevelopment yalnızca İnternet gibi güvenilmeyen ağlar için erişilemeyen hazırlama ve test sunucularında olarak ayarlayın.
ILE IIS yapılandırması web.config
IIS yapılandırması, ASP.NET Core Modülü ile ASP.NET Core uygulamaları için işlevsel IIS senaryoları bölümünden <system.webServer> etkilenirweb.config. Örneğin IIS yapılandırması dinamik sıkıştırma için kullanılabilir. IIS, sunucu düzeyinde dinamik sıkıştırma kullanacak şekilde yapılandırıldıysa, <urlCompression> uygulamanın web.config dosyasındaki öğe ASP.NET Core uygulaması için bunu devre dışı bırakabilir.
Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:
-
Için yapılandırma başvurusu
<system.webServer> - IIS için ASP.NET Core Modülü (ANCM)
- ASP.NET Core içeren IIS modülleri
Yalıtılmış uygulama havuzlarında (IIS 10.0 veya üzeri için desteklenir) çalışan tek tek uygulamaların ortam değişkenlerini ayarlamak için, IIS başvuru belgelerindeki Ortam Değişkenleri AppCmd.exekonusunun komut bölümüne bakın<environmentVariables>.
Yapılandırma bölümleri: web.config
ASP.NET 4.x uygulamalarının web.config yapılandırma bölümleri, yapılandırma için ASP.NET Core uygulamaları tarafından kullanılmaz:
<system.web><appSettings><connectionStrings><location>
ASP.NET Core uygulamaları diğer yapılandırma sağlayıcıları kullanılarak yapılandırılır. Daha fazla bilgi için bkz. Yapılandırma.
Web.config’i dönüştürme
Yayımlama sırasında web.config dosyasını dönüştürmeniz gerekirse Web.config'i dönüştürme konusuna bakın. Yapılandırmaya, profile veya ortama bağlı olarak ortam değişkenlerini ayarlamak için yayımlama sırasında web.config dosyasını dönüştürmeniz gerekebilir.
Ek kaynaklar
ASP.NET Core