web.config
dosyası
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.
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 içerik kökü yolunda (tipik olarak uygulama temel yolu) web.config
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 web.config
dosyasındaki system.webServer
düğümün bölümüyle aspNetCore
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 için aşağıdakiler web.config
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 <location>
belirtilen ayarların uygulamanın alt dizininde bulunan uygulamalar tarafından devralınmadığını belirtmek için ayarlanırfalse
.
Bir uygulama Azure Uygulaması Hizmetine stdoutLogFile
dağıtıldığında yol olarak \\?\%home%\LogFiles\stdout
ayarlanı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: 1 Min: 1 Maksimum: 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: 10 Min: 0 Max: 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:00 Min: 00:00:00 Max: 360:00:00 |
shutdownTimeLimit |
İsteğe bağlı tamsayı özniteliği. Dosya algılandığında |
Varsayılan: 10 Min: 0 Max: 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 yeniden başlatılmaz ve ayarı kullanmaz İş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: 120 Min: 0 Max: 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.config
iki ortam değişkeni ayarlar. ASPNETCORE_ENVIRONMENT
, uygulamanın ortamını olarak Development
yapılandırıyor. Bir geliştirici, uygulama özel durumu hata ayıklaması yaparken Geliştirici Özel Durum Sayfası'nı yüklemeye zorlamak için dosyada web.config
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_ENVIRONMENT
Development
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 web.config
etkilenir<system.webServer>
. Ö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 <environmentVariables>
konusunun komut bölümüne bakınAppCmd.exe
.
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