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 10 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 Module 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'e sağlanan web sitesinin fiziksel yolu ile 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 Dosya eksikse, yanlış adlandırılmışsa veya siteyi normal başlangıç için yapılandıramıyorsa, IIS hassas dosyalara genel olarak hizmet verebilir.
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.
Dosya, web.config etkin IIS modüllerini kontrol eden 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 makalesine bakın.
MSBuild hedefi (_TransformWebConfig) proje yayımlandığında web.config dosyanın oluşturulmasını, dönüştürülmesini ve yayımlanmasını işler. 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'nin dosyayı dönüştürmesini devre dışı bıraktığında, geliştiricinin processPath ve arguments öğelerini el ile ayarlaması gerekir. 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 Core Modülü, sitenin web.config dosyasındaki system.webServer düğümünün aspNetCore bölümünde 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>
Aşağıdaki
<?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, <location> öğesi içindeki ayarların uygulamanın alt dizininde bulunan uygulamalar tarafından devralınmadığını belirtmek için false olarak ayarlanır.
Bir uygulama Azure Uygulama Hizmeti'ne dağıtıldığında, stdoutLogFile yolu \\?\%home%\LogFiles\stdout olarak ayarlanır. Yol, stdout günlüklerini hizmet tarafından otomatik olarak oluşturulan LogFiles klasörüne 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ç, isteğe bağlı olarak 'MS-ASPNETCORE-WINAUTHTOKEN' üst bilgisi olarak |
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 †İşlem içi barındırma için değer Ayar |
Varsayılan: 1Dak.: 1Maksimum: 100† |
processPath |
Gerekli metin özniteliği. HTTP isteklerini dinleyen bir işlemi başlatan yürütülebilir dosyanın yolu. Göreli yollar desteklenir. Yol |
|
rapidFailsPerMinute |
İsteğe bağlı tamsayı özniteliği.
İşlem içi barındırma ile desteklenmez. |
Varsayılan: 10Dak.: 0Max: 100 |
requestTimeout |
İsteğe bağlı zaman aralığı özniteliği. ASP.NET Core Modülünün %ASPNETCORE_PORT% üzerinde 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:00Dak.: 00:00:00Max: 360:00:00 |
shutdownTimeLimit |
İsteğe bağlı tamsayı özniteliği. Dosya algılandığında |
Varsayılan: 10Dak.: 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 süreç başlatmasını beklediği sürenin saniye cinsinden ifadesi. 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 yeniden başlatılmaz ve İş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: 120Dak.: 0Max: 3600 |
stdoutLogEnabled |
İsteğe bağlı Boole özniteliği. Eğer doğruysa, |
false |
stdoutLogFile |
İsteğe bağlı dize özniteliği.
|
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 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 web.config içinde ayarlamaya bir alternatif, <EnvironmentName> özelliğini yayımlama profiline veya proje dosyasına eklemektir. Bu yaklaşım, proje yayımlandığında ortamını web.config ayarlar:
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
Uyarı
ASPNETCORE_ENVIRONMENT ortam değişkenini Development yalnızca İnternet gibi güvenilmeyen ağlar tarafından erişilemeyen hazırlık ve test sunucularında ayarlayın.
IIS'in yapılandırılması web.config
IIS yapılandırması, <system.webServer>web.config bölümündeki ayarlar, ASP.NET Core Modülü ile çalışan ASP.NET Core uygulamaları için işlevsel olan IIS senaryolarında etkilidir. Ö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 için aşağıdaki makalelere bakın:
-
<system.webServer>için yapılandırma referansı - 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.exe makalesinin komut bölümüne bakın<environmentVariables>.
web.config yapılandırma bölümleri
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