IIS için ASP.NET Core Modülü (ANCM)
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.
ASP.NET Core Modülü (ANCM), IIS işlem hattına takılan ve ASP.NET Core uygulamalarının IIS ile çalışmasına olanak sağlayan yerel bir IIS modülüdür. IIS ile ASP.NET Core uygulamalarını aşağıdakilerden birini çalıştırabilirsiniz:
- İşlem içi barındırma modeli olarak adlandırılan IIS çalışan işleminin (
w3wp.exe
) içinde bir ASP.NET Core uygulaması barındırma. - Web isteklerini, işlem dışı barındırma modeli olarak adlandırılan sunucuyu çalıştıran Kestrel bir arka uç ASP.NET Core uygulamasına iletme.
Barındırma modellerinin her biri arasında dengeler vardır. Varsayılan olarak, daha iyi performans ve tanılama nedeniyle işlem içi barındırma modeli kullanılır.
Daha fazla bilgi ve yapılandırma rehberliği için aşağıdaki konulara bakın:
ASP.NET Core Modülünü (ANCM) yükleme
ASP.NET Core Modülü (ANCM), .NET Core Barındırma Paketi'nden .NET Core Çalışma Zamanı ile birlikte yüklenir. ASP.NET Core Modülü, .NET'in destek içi sürümleriyle ileri ve geri uyumludur.
Hataya neden olan değişiklikler ve güvenlik önerileri Duyurular deposunda bildirilir. Etiket filtresi seçilerek duyurular belirli bir sürümle sınırlandırılabilir.
Aşağıdaki bağlantıyı kullanarak yükleyiciyi indirin:
Geçerli .NET Core Barındırma Paketi yükleyicisi (doğrudan indirme)
Modülün önceki bir sürümünü yükleme de dahil olmak üzere daha fazla bilgi için bkz . Barındırma Paketi.
ASP.NET Core uygulamasını IIS sunucusuna yayımlamaya yönelik bir öğretici deneyimi için bkz. ASP.NET Core uygulamasını IIS'ye yayımlama.
ASP.NET Çekirdek Modülü (ANCM), IIS işlem hattına takıp aşağıdakilerden birini yapmak için yerel bir IIS modülüdür:
- IIS çalışan işleminin (
w3wp.exe
) içinde işlem içi barındırma modeli olarak adlandırılan bir ASP.NET Core uygulaması barındırın. - Web isteklerini, işlem dışı barındırma modeli olarak adlandırılan sunucuyu çalıştıran Kestrel bir arka uç ASP.NET Core uygulamasına iletin.
Desteklenen Windows sürümleri:
- Windows 7 veya üzeri
- Windows Server 2012 R2 veya üzeri
İşlem içi barındırma sırasında, modül IIS için IIS HTTP Sunucusu (IISHttpServer
) adlı bir işlem içi sunucu uygulaması kullanır.
İşlem dışı barındırma sırasında modül yalnızca ile Kestrelçalışır. Modül HTTP.sys ile çalışmaz.
Barındırma modelleri
İşlem içi barındırma modeli
ASP.NET Core uygulamaları varsayılan olarak işlem içi barındırma modelidir.
İşlemde barındırma sırasında aşağıdaki özellikler geçerlidir:
IIS HTTP Sunucusu (
IISHttpServer
), sunucu yerine Kestrel kullanılır. İşlem sırasında CreateDefaultBuilder şunu çağırır UseIIS :- öğesini
IISHttpServer
kaydedin. - ASP.NET Çekirdek Modülü arkasında çalışırken sunucunun dinlemesi gereken bağlantı noktasını ve temel yolu yapılandırın.
- Başlangıç hatalarını yakalamak için konağı yapılandırın.
- öğesini
requestTimeout özniteliği işlem içi barındırma için geçerli değildir.
Uygulamalar arasında uygulama havuzu paylaşımı desteklenmez. Uygulama başına bir uygulama havuzu kullanın.
Web Dağıtımı kullanırken veya bir
app_offline.htm
dosyayı dağıtıma el ile yerleştirirken, açık bir bağlantı varsa uygulama hemen kapatılamayabilir. Örneğin, bir WebSocket bağlantısı uygulamanın kapatılmasını geciktirebilir.Uygulamanın ve yüklü çalışma zamanının mimarisi (bitlik) (x64 veya x86) uygulama havuzunun mimarisiyle eşleşmelidir.
İstemci bağlantısı kesiliyor algılandı. İstemci
HttpContext.RequestAborted
bağlantısı kesildiğinde iptal belirteci iptal edilir.ASP.NET Core 2.2.1 veya önceki sürümlerinde, GetCurrentDirectory uygulamanın dizini yerine IIS tarafından başlatılan işlemin çalışan dizinini döndürür (örneğin,
C:\Windows\System32\inetsrv
içinw3wp.exe
).Uygulamanın geçerli dizinini ayarlayan örnek kod için sınıfına
CurrentDirectoryHelpers
bakın. yöntemini çağırınSetCurrentDirectory
. Uygulamanın dizinini sağlamak için GetCurrentDirectory sonraki çağrılar.İşlem içinde barındırılırken, AuthenticateAsync bir kullanıcıyı başlatmak için dahili olarak çağrılmaz. Bu nedenle, her kimlik doğrulamasından sonra talepleri dönüştürmek için kullanılan bir IClaimsTransformation uygulama varsayılan olarak etkinleştirilmez. Talepleri bir IClaimsTransformation uygulamayla dönüştürürken, kimlik doğrulama hizmetleri eklemek için çağrısı AddAuthentication :
public void ConfigureServices(IServiceCollection services) { services.AddTransient<IClaimsTransformation, ClaimsTransformer>(); services.AddAuthentication(IISServerDefaults.AuthenticationScheme); } public void Configure(IApplicationBuilder app) { app.UseAuthentication(); }
- Web Paketi (tek dosyalı) dağıtımlar desteklenmez.
İşlem dışı barındırma modeli
Bir uygulamayı işlem dışı barındırma için yapılandırmak için, özelliğin <AspNetCoreHostingModel>
OutOfProcess
değerini proje dosyasında (.csproj
):
<PropertyGroup>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
İşlem içi barındırma, varsayılan değer olan ile InProcess
ayarlanır.
değeri <AspNetCoreHostingModel>
büyük/küçük harfe duyarsız inprocess
outofprocess
olduğundan geçerli değerlerdir.
Kestrel sunucusu IIS HTTP Sunucusu (IISHttpServer
yerine) kullanılır.
İşlem dışı için şu CreateDefaultBuilder
çağrılar UseIISIntegration yapılır:
- ASP.NET Çekirdek Modülü arkasında çalışırken sunucunun dinlemesi gereken bağlantı noktasını ve temel yolu yapılandırın.
- Başlangıç hatalarını yakalamak için konağı yapılandırın.
Barındırma modeli değişiklikleri
hostingModel
Ayar dosyada web.config
değiştirilirse (Yapılandırma ile web.config
bölümünde açıklanmıştır), modül IIS için çalışan işlemini geri döndürür.
IIS Express için modül çalışan işlemini geri dönüştürmez, bunun yerine geçerli IIS Express işleminin düzgün bir şekilde kapatılmasını tetikler. Uygulamaya yönelik bir sonraki istek yeni bir IIS Express işlemi oluşturur.
İşlem adı
Process.GetCurrentProcess().ProcessName
raporlar w3wp
/iisexpress
(işlem içi) veya dotnet
(işlem dışı).
Windows Kimlik Doğrulaması gibi birçok yerel modül etkin kalır. ASP.NET Çekirdek Modülü ile etkin IIS modülleri hakkında daha fazla bilgi edinmek için bkz . ASP.NET Core ile IIS modülleri.
ASP.NET Core Modülü şunları da yapabilir:
- Çalışan işlemi için ortam değişkenlerini ayarlayın.
- Başlatma sorunlarını gidermek için stdout çıkışını dosya depolamaya günlükleyin.
- Windows kimlik doğrulama belirteçlerini iletme.
ASP.NET Çekirdek Modülünü (ANCM) yükleme ve kullanma
ASP.NET Core Modülünü yükleme yönergeleri için bkz . .NET Core Barındırma Paketini Yükleme. ASP.NET Core Modülü, .NET'in destek içi sürümleriyle ileri ve geri uyumludur.
Hataya neden olan değişiklikler ve güvenlik önerileri Duyurular deposunda bildirilir. Etiket filtresi seçilerek duyurular belirli bir sürümle sınırlandırılabilir.
web.config ile yapılandırma
ASP.NET Çekirdek Modülü, sitenin aspNetCore
web.config dosyasındaki düğümün system.webServer
bölümüyle 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 web.config, bağımsız dağıtım için 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 . IIS ile Windows'ta Konak ASP.NET Çekirdeği.
aspNetCore öğesinin öznitelikleri
Öznitelik | Açıklama | Varsayılan |
---|---|---|
arguments |
İsteğe bağlı dize özniteliği. processPath'te belirtilen yürütülebilir dosyaya yönelik bağımsız değişkenler. |
|
disableStartUpErrorPage |
İsteğe bağlı Boole özniteliği. True ise, 502.5 - İşlem Hatası sayfası gösterilmez ve web.config dosyasında yapılandırılan 502 durum kodu sayfası önceliklidir. |
false |
forwardWindowsAuthToken |
İsteğe bağlı Boole özniteliği. True ise, belirteç istek başına üst bilgi |
true |
hostingModel |
İsteğe bağlı dize özniteliği. Barındırma modelini işlem içi ( |
InProcess inprocess |
processesPerApplication |
İsteğe bağlı tamsayı özniteliği. processPath ayarında belirtilen işlemin uygulama başına artırılabilen örneklerinin sayısını belirtir. †İ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. processPath'te belirtilen işlemin dakika başına kilitlenmesine izin verilen sayısını belirtir. Bu sınır aşılırsa modül, dakikanın geri kalanında işlemi başlatmayı durdurur. İş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. Dakikalar veya saniyeler için değerde 60 kullanılması 500 - İç Sunucu Hatasına neden olur. |
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çi barındırma sırasında: İşlem yeniden başlatılmaz ve rapidFailsPerMinute ayarını 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 rapidFailsPerMinute sayısını başlatamadığı sürece sonraki gelen isteklerde işlemi yeniden başlatmayı dener. 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 ise, processPath'te belirtilen işlem için stdout ve stderr, stdoutLogFile içinde belirtilen dosyaya yönlendirilir. |
false |
stdoutLogFile |
İsteğe bağlı dize özniteliği. processPath'te belirtilen işlemden stdout ve stderr'ın günlüğe kaydedildiği göreli veya mutlak dosya yolunu belirtir. Göreli yollar, sitenin köküne göredir. ile |
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.
app_offline.htm
Bir uygulamanın kök dizininde adıyla app_offline.htm
bir dosya algılanırsa, ASP.NET Çekirdek Modülü uygulamayı düzgün bir şekilde kapatmayı ve gelen istekleri işlemeyi durdurmayı dener. uygulama içinde shutdownTimeLimit
tanımlanan saniye sayısından sonra çalışmaya devam ediyorsa ASP.NET Çekirdek Modülü çalışan işlemi sonlandırıyor.
app_offline.htm
Dosya mevcutken, ASP.NET Çekirdek Modülü dosyanın içeriğini app_offline.htm
geri göndererek isteklere yanıt verir. app_offline.htm
Dosya kaldırıldığında, sonraki istek uygulamayı başlatır.
İşlem dışı barındırma modeli kullanılırken, açık bir bağlantı varsa uygulama hemen kapatılamayabilir. Örneğin, bir WebSocket bağlantısı uygulamanın kapatılmasını geciktirebilir.
Başlangıç hata sayfası
Hem işlem içi hem de işlem dışı barındırma, uygulamayı başlatamadığında özel hata sayfaları oluşturur.
ASP.NET Çekirdek Modülü işlem içi veya işlem dışı istek işleyicisini bulamazsa, bir 500.0 - İşlem İçi/İşlem Dışı İşleyici Yük Hatası durum kodu sayfası görüntülenir.
ASP.NET Çekirdek Modülü uygulamayı başlatamıyorsa işlem içi barındırma için 500.30 - Başlatma Hatası durum kodu sayfası görüntülenir.
ASP.NET Çekirdek Modülü arka uç işlemini başlatamazsa veya arka uç işlemi başlatılırsa ancak yapılandırılan bağlantı noktasında dinlenemezse işlem dışı barındırma için 502.5 - İşlem Hatası durum kodu sayfası görüntülenir.
Bu sayfayı bastırmak ve varsayılan IIS 5xx durum kodu sayfasına dönmek için özniteliğini disableStartUpErrorPage
kullanın. Özel hata iletilerini yapılandırma hakkında daha fazla bilgi için bkz. HTTP Hataları <httpErrors>
.
Günlük oluşturma ve yeniden yönlendirme
ASP.NET Çekirdek Modülü, öğesinin ve öznitelikleri ayarlandıysa stdoutLogEnabled
stdout ve stdoutLogFile
stderr konsol çıkışını diske aspNetCore
yönlendirir. Yoldaki stdoutLogFile
tüm klasörler, günlük dosyası oluşturulduğunda modül tarafından oluşturulur. Uygulama havuzunun günlüklerin yazıldığı konuma yazma erişimi olmalıdır (yazma izni sağlamak için kullanın IIS AppPool\<app_pool_name>
).
İşlem geri dönüştürme/yeniden başlatma gerçekleşmediği sürece günlükler döndürülemez. Günlüklerin tükettiği disk alanını sınırlamak barındırıcının sorumluluğundadır.
stdout günlüğünün kullanılması yalnızca IIS'de barındırılırken veya Visual Studio ile IIS için geliştirme zamanı desteği kullanılırken uygulama başlatma sorunlarını gidermek için önerilir; yerel olarak hata ayıklarken ve uygulamayı IIS Express ile çalıştırırken değil.
Genel uygulama günlüğü amacıyla stdout günlüğünü kullanmayın. ASP.NET Core uygulamasında rutin günlük kaydı için günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlük kitaplığı kullanın. Daha fazla bilgi için bkz . üçüncü taraf günlük sağlayıcıları.
Günlük dosyası oluşturulduğunda zaman damgası ve dosya uzantısı otomatik olarak eklenir. Günlük dosyası adı, zaman damgası, işlem kimliği ve dosya uzantısı (.log
) alt çizgilerle ayrılmış yolun son kesimine stdoutLogFile
(genellikle stdout
) eklenerek oluşturulur. stdoutLogFile
Yol ile stdout
bitiyorsa, 5/2/2018 tarihinde 19:42:32'de oluşturulan 1934 PID'sine sahip bir uygulamanın günlüğü dosya adına stdout_20180205194132_1934.log
sahiptir.
stdoutLogEnabled
False ise, uygulama başlatma sırasında oluşan hatalar yakalanır ve olay günlüğüne 30 KB'a kadar yayılır. Başlatma işleminden sonra tüm ek günlükler atılır.
Aşağıdaki örnek aspNetCore
öğesi, göreli yolda .\log\
stdout günlüğünü yapılandırır. AppPool kullanıcısının identity sağlanan yola yazma izni olduğunu onaylayın.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
</aspNetCore>
Azure Uygulaması Hizmeti dağıtımı için bir uygulama yayımlarken, Web SDK değeri stdoutLogFile
olarak \\?\%home%\LogFiles\stdout
ayarlar. Ortam %home
değişkeni, Azure Uygulaması Hizmeti tarafından barındırılan uygulamalar için önceden tanımlanmıştır.
Günlük filtresi kuralları oluşturmak için ASP.NET Core günlük kaydı belgelerinin Kodda günlük filtresi kurallarını uygulama bölümüne bakın.
Yol biçimleri hakkında daha fazla bilgi için bkz . Windows sistemlerinde dosya yolu biçimleri.
Gelişmiş tanılama günlükleri
ASP.NET Çekirdek Modülü, gelişmiş tanılama günlükleri sağlamak için yapılandırılabilir. <handlerSettings>
öğesini öğesinde <aspNetCore>
web.config
öğesine ekleyin. ayarıTRACE
, debugLevel
tanılama bilgilerinin daha yüksek aslına uygun olmasını sağlar:
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile="\\?\%home%\LogFiles\stdout"
hostingModel="inprocess">
<handlerSettings>
<handlerSetting name="debugFile" value=".\logs\aspnetcore-debug.log" />
<handlerSetting name="debugLevel" value="FILE,TRACE" />
</handlerSettings>
</aspNetCore>
Yoldaki tüm klasörler (logs
yukarıdaki örnekte) günlük dosyası oluşturulduğunda modül tarafından oluşturulur. Uygulama havuzunun, günlüklerin yazıldığı konuma yazma erişimi olmalıdır (yazma izni sağlamak için yer tutucunun {APP POOL NAME}
uygulama havuzu adı olduğu öğesini kullanınIIS AppPool\{APP POOL NAME}
).
Hata ayıklama düzeyi (debugLevel
) değerleri hem düzeyi hem de konumu içerebilir.
Düzeyler (en azdan en ayrıntılı düzeye sırasıyla):
- HATA
- UYARI
- INFO
- TRACE
Konumlar (birden çok konuma izin verilir):
- KONSOL
- EVENTLOG
- DOSYA
İşleyici ayarları ortam değişkenleri aracılığıyla da sağlanabilir:
ASPNETCORE_MODULE_DEBUG_FILE
: Hata ayıklama günlük dosyasının yolu. (Varsayılan:aspnetcore-debug.log
)ASPNETCORE_MODULE_DEBUG
: Hata ayıklama düzeyi ayarı.
Uyarı
Bir sorunu gidermek için hata ayıklama günlüğünü dağıtımda gerekenden daha uzun süre etkin bırakmayın. Günlüğün boyutu sınırlı değildir. Hata ayıklama günlüğünün etkin durumda bırakılması, kullanılabilir disk alanını tüketebilir ve sunucu veya uygulama hizmetini kilitleyebilir.
Dosyadaki web.config
öğenin bir örneği aspNetCore
için bkz. Web.config ile yapılandırma.
Yığın boyutunu değiştirme
Yalnızca işlem içi barındırma modeli kullanılırken geçerlidir.
içindeki bayt web.config
cinsinden ayarını kullanarak stackSize
yönetilen yığın boyutunu yapılandırın. Varsayılan boyut 1.048.576 bayttır (1 MB).
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile="\\?\%home%\LogFiles\stdout"
hostingModel="inprocess">
<handlerSettings>
<handlerSetting name="stackSize" value="2097152" />
</handlerSettings>
</aspNetCore>
Ara sunucu yapılandırması HTTP protokol ve eşleştirme belirteci kullanır
Yalnızca işlem dışı barındırma için geçerlidir.
ASP.NET Çekirdek Modülü arasında oluşturulan ve Kestrel HTTP protokolünü kullanan ara sunucu. Modül Kestrel ile sunucunun dışında bir konumdan gelen trafiği dinleme riski yoktur.
bir eşleştirme belirteci, tarafından Kestrel alınan isteklerin IIS tarafından proksied olduğunu ve başka bir kaynaktan gelmediğini garanti etmek için kullanılır. Eşleştirme belirteci oluşturulur ve modül tarafından bir ortam değişkenine (ASPNETCORE_TOKEN
) ayarlanır. Eşleştirme belirteci de her prxied isteğinde bir üst bilgi (MS-ASPNETCORE-TOKEN
) olarak ayarlanır. IIS Ara Yazılımı, aldığı her isteği denetlediğinden, eşleştirme belirteci üst bilgisi değerinin ortam değişkeni değeriyle eşleşdiğini onaylar. Belirteç değerleri eşleşmezse istek günlüğe kaydedilir ve reddedilir. Eşleştirme belirteci ortam değişkeni ve modül Kestrel arasındaki trafiğe sunucunun kapalı bir konumundan erişilemez. Eşleştirme belirteci değerini bilmeden, bir siber saldırı aracı IIS Ara Yazılımı'nda denetimi atlayan istekler gönderemez.
IIS Paylaşılan Yapılandırması ile ASP.NET Çekirdek Modülü
ASP.NET Çekirdek Modülü yükleyicisi, TrustedInstaller hesabının ayrıcalıklarıyla çalışır. Yerel sistem hesabının IIS Paylaşılan Yapılandırması tarafından kullanılan paylaşım yolu için değiştirme izni olmadığından, paylaşımdaki dosyada applicationHost.config
modül ayarlarını yapılandırmaya çalışırken yükleyici erişim reddedildi hatası oluşturur.
IIS yüklemesiyle aynı makinede IIS Paylaşılan Yapılandırması kullanırken, parametresi olarak ayarlanmış 1
ASP.NET Core Barındırma Paketi yükleyicisini OPT_NO_SHARED_CONFIG_CHECK
çalıştırın:
dotnet-hosting-{VERSION}.exe OPT_NO_SHARED_CONFIG_CHECK=1
Paylaşılan yapılandırmanın yolu IIS yüklemesi ile aynı makinede değilse şu adımları izleyin:
- IIS Paylaşılan Yapılandırmasını devre dışı bırakın.
- Yükleyiciyi çalıştırın.
- Güncelleştirilmiş
applicationHost.config
dosyayı paylaşıma aktarın. - IIS Paylaşılan Yapılandırmasını yeniden etkinleştirin.
Modül sürümü ve Barındırma Paketi yükleyici günlükleri
Yüklü ASP.NET Çekirdek Modülünün sürümünü belirlemek için:
- Barındırma sisteminde adresine
%windir%\System32\inetsrv
gidin. aspnetcore.dll
Dosyayı bulun.- Dosyaya sağ tıklayın ve bağlam menüsünden Özellikler'i seçin.
- Ayrıntılar sekmesini seçin. Dosya sürümü ve Ürün sürümü, modülün yüklü sürümünü temsil edilir.
Modülün Barındırma Paketi yükleyici günlükleri adresinde C:\Users\%UserName%\AppData\Local\Temp
bulunur. Dosya olarak adlandırılır dd_DotNetCoreWinSvrHosting__{TIMESTAMP}_000_AspNetCoreModule_x64.log
.
Modül, şema ve yapılandırma dosyası konumları
Modül
IIS (x86/amd64):
%windir%\System32\inetsrv\aspnetcore.dll
%windir%\SysWOW64\inetsrv\aspnetcore.dll
%ProgramFiles%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll
%ProgramFiles(x86)%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll
IIS Express (x86/amd64):
%ProgramFiles%\IIS Express\aspnetcore.dll
%ProgramFiles(x86)%\IIS Express\aspnetcore.dll
%ProgramFiles%\IIS Express\Asp.Net Core Module\V2\aspnetcorev2.dll
%ProgramFiles(x86)%\IIS Express\Asp.Net Core Module\V2\aspnetcorev2.dll
Şema
IIS
%windir%\System32\inetsrv\config\schema\aspnetcore_schema.xml
%windir%\System32\inetsrv\config\schema\aspnetcore_schema_v2.xml
IIS Express
%ProgramFiles%\IIS Express\config\schema\aspnetcore_schema.xml
%ProgramFiles%\IIS Express\config\schema\aspnetcore_schema_v2.xml
Yapılandırma
IIS
%windir%\System32\inetsrv\config\applicationHost.config
IIS Express
Visual Studio:
{APPLICATION ROOT}\.vs\config\applicationHost.config
iisexpress.exe CLI:
%USERPROFILE%\Documents\IISExpress\config\applicationhost.config
Dosyaları dosyada applicationHost.config
arayarak aspnetcore
bulabilirsiniz.
ASP.NET Çekirdek Modülü (ANCM), IIS işlem hattına takıp aşağıdakilerden birini yapmak için yerel bir IIS modülüdür:
- IIS çalışan işleminin (
w3wp.exe
) içinde işlem içi barındırma modeli olarak adlandırılan bir ASP.NET Core uygulaması barındırın. - Web isteklerini, işlem dışı barındırma modeli olarak adlandırılan sunucuyu çalıştıran Kestrel bir arka uç ASP.NET Core uygulamasına iletin.
Desteklenen Windows sürümleri:
- Windows 7 veya üzeri
- Windows Server 2008 R2 veya üzeri
İşlem içi barındırma sırasında, modül IIS için IIS HTTP Sunucusu (IISHttpServer
) adlı bir işlem içi sunucu uygulaması kullanır.
İşlem dışı barındırma sırasında modül yalnızca ile Kestrelçalışır. Modül HTTP.sys ile çalışmaz.
Barındırma modelleri
İşlem içi barındırma modeli
Bir uygulamayı işlem içi barındırma için yapılandırmak için özelliğini uygulamanın proje dosyasına değeriyle InProcess
ekleyin <AspNetCoreHostingModel>
(işlem dışı barındırma ile OutOfProcess
ayarlanır):
<PropertyGroup>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
.NET Framework'ASP.NET Core uygulamaları için işlem içi barındırma modeli desteklenmez.
değeri <AspNetCoreHostingModel>
büyük/küçük harfe duyarsız inprocess
outofprocess
olduğundan geçerli değerlerdir.
<AspNetCoreHostingModel>
Özelliği dosyada yoksa, varsayılan değer olurOutOfProcess
.
İşlemde barındırma sırasında aşağıdaki özellikler geçerlidir:
IIS HTTP Sunucusu (
IISHttpServer
), sunucu yerine Kestrel kullanılır. İşlem sırasında CreateDefaultBuilder şunu çağırır UseIIS :- öğesini
IISHttpServer
kaydedin. - ASP.NET Çekirdek Modülü arkasında çalışırken sunucunun dinlemesi gereken bağlantı noktasını ve temel yolu yapılandırın.
- Başlangıç hatalarını yakalamak için konağı yapılandırın.
- öğesini
requestTimeout özniteliği işlem içi barındırma için geçerli değildir.
Uygulamalar arasında uygulama havuzu paylaşımı desteklenmez. Uygulama başına bir uygulama havuzu kullanın.
Web Dağıtımı kullanırken veya dağıtıma bir app_offline.htm dosyasını el ile yerleştirirken, açık bir bağlantı varsa uygulama hemen kapatılamayabilir. Örneğin, bir websocket bağlantısı uygulamanın kapatılmasını geciktirebilir.
Uygulamanın ve yüklü çalışma zamanının mimarisi (bitlik) (x64 veya x86) uygulama havuzunun mimarisiyle eşleşmelidir.
İstemci bağlantısı kesiliyor algılandı. İstemci bağlantısı kesildiğinde HttpContext.RequestAborted iptal belirteci iptal edilir.
ASP.NET Core 2.2.1 veya önceki sürümlerinde, GetCurrentDirectory uygulamanın dizini yerine IIS tarafından başlatılan işlemin çalışan dizinini döndürür (örneğin, w3wp.exe için C:\Windows\System32\inetsrv).
Uygulamanın geçerli dizinini ayarlayan örnek kod için bkz . CurrentDirectoryHelpers sınıfı. yöntemini çağırın
SetCurrentDirectory
. Uygulamanın dizinini sağlamak için GetCurrentDirectory sonraki çağrılar.İşlem içinde barındırılırken, AuthenticateAsync bir kullanıcıyı başlatmak için dahili olarak çağrılmaz. Bu nedenle, her kimlik doğrulamasından sonra talepleri dönüştürmek için kullanılan bir IClaimsTransformation uygulama varsayılan olarak etkinleştirilmez. Talepleri bir IClaimsTransformation uygulamayla dönüştürürken, kimlik doğrulama hizmetleri eklemek için çağrısı AddAuthentication :
public void ConfigureServices(IServiceCollection services) { services.AddTransient<IClaimsTransformation, ClaimsTransformer>(); services.AddAuthentication(IISServerDefaults.AuthenticationScheme); } public void Configure(IApplicationBuilder app) { app.UseAuthentication(); }
İşlem dışı barındırma modeli
Bir uygulamayı işlem dışı barındırma için yapılandırmak için proje dosyasında aşağıdaki yaklaşımlardan birini kullanın:
- özelliğini belirtmeyin
<AspNetCoreHostingModel>
.<AspNetCoreHostingModel>
Özelliği dosyada yoksa, varsayılan değer olurOutOfProcess
. - özelliğinin
<AspNetCoreHostingModel>
OutOfProcess
değerini olarak ayarlayın (işlem içi barındırma ileInProcess
ayarlanır):
<PropertyGroup>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
Değer büyük/küçük harfe duyarsız inprocess
outofprocess
olduğundan geçerli değerlerdir.
Kestrel sunucusu IIS HTTP Sunucusu (IISHttpServer
yerine) kullanılır.
İşlem dışı için CreateDefaultBuilder şunu çağırırUseIISIntegration:
- ASP.NET Çekirdek Modülü arkasında çalışırken sunucunun dinlemesi gereken bağlantı noktasını ve temel yolu yapılandırın.
- Başlangıç hatalarını yakalamak için konağı yapılandırın.
Barındırma modeli değişiklikleri
hostingModel
Ayar web.config dosyasında değiştirilirse (web.config ile yapılandırma bölümünde açıklanmıştır), modül IIS için çalışan işlemini geri döndürür.
IIS Express için modül çalışan işlemini geri dönüştürmez, bunun yerine geçerli IIS Express işleminin düzgün bir şekilde kapatılmasını tetikler. Uygulamaya yönelik bir sonraki istek yeni bir IIS Express işlemi oluşturur.
İşlem adı
Process.GetCurrentProcess().ProcessName
raporlar w3wp
/iisexpress
(işlem içi) veya dotnet
(işlem dışı).
Windows Kimlik Doğrulaması gibi birçok yerel modül etkin kalır. ASP.NET Çekirdek Modülü ile etkin IIS modülleri hakkında daha fazla bilgi edinmek için bkz . ASP.NET Core ile IIS modülleri.
ASP.NET Core Modülü şunları da yapabilir:
- Çalışan işlemi için ortam değişkenlerini ayarlayın.
- Başlatma sorunlarını gidermek için stdout çıkışını dosya depolamaya günlükleyin.
- Windows kimlik doğrulama belirteçlerini iletme.
ASP.NET Çekirdek Modülünü (ANCM) yükleme ve kullanma
ASP.NET Core Modülünü yükleme yönergeleri için bkz . .NET Core Barındırma Paketini Yükleme. ASP.NET Core Modülü, .NET'in destek içi sürümleriyle ileri ve geri uyumludur.
Hataya neden olan değişiklikler ve güvenlik önerileri Duyurular deposunda bildirilir. Etiket filtresi seçilerek duyurular belirli bir sürümle sınırlandırılabilir.
web.config ile yapılandırma
ASP.NET Çekirdek Modülü, sitenin aspNetCore
web.config dosyasındaki düğümün system.webServer
bölümüyle yapılandırılır.
Aşağıdaki web.config dosyası, ç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 web.config, bağımsız dağıtım için 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, location> öğesinde <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 hizmet tarafından otomatik olarak oluşturulan bir konum olan LogFiles klasörüne kaydeder.
IIS alt uygulama yapılandırması hakkında bilgi için bkz . IIS ile Windows'ta Konak ASP.NET Çekirdeği.
aspNetCore öğesinin ö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 web.config dosyasında yapılandırılan 502 durum kodu sayfası önceliklidir. |
false |
forwardWindowsAuthToken |
İsteğe bağlı Boole özniteliği. Doğruysa, belirteç %ASPNETCORE_PORT% üzerinde istek başına 'MS-ASPNETCORE-WINAUTHTOKEN' üst bilgisi olarak dinleyen alt işleme iletilir. İstek başına bu belirteçte CloseHandle çağrısı yapmak bu işlemin sorumluluğundadır. |
true |
hostingModel |
İsteğe bağlı dize özniteliği. Barındırma modelini işlem içi ( |
OutOfProcess outofprocess |
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. Dakikalar veya saniyeler için değerde 60 kullanılması 500 - İç Sunucu Hatasına neden olur. |
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 ise, içinde belirtilen |
false |
stdoutLogFile |
İsteğe bağlı dize özniteliği. ve içinde belirtilen |
aspnetcore-stdout |
Ortam değişkenlerini ayarlama
Ö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 iki ortam değişkenini 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.
app_offline.htm
Bir uygulamanın kök dizininde adıyla app_offline.htm
bir dosya algılanırsa, ASP.NET Çekirdek Modülü uygulamayı düzgün bir şekilde kapatmayı ve gelen istekleri işlemeyi durdurmayı dener. uygulama içinde shutdownTimeLimit
tanımlanan saniye sayısından sonra çalışmaya devam ediyorsa ASP.NET Çekirdek Modülü çalışan işlemi sonlandırıyor.
app_offline.htm
Dosya mevcutken, ASP.NET Çekirdek Modülü dosyanın içeriğini app_offline.htm
geri göndererek isteklere yanıt verir. app_offline.htm
Dosya kaldırıldığında, sonraki istek uygulamayı başlatır.
İşlem dışı barındırma modeli kullanılırken, açık bir bağlantı varsa uygulama hemen kapatılamayabilir. Örneğin, bir websocket bağlantısı uygulamanın kapatılmasını geciktirebilir.
Başlangıç hata sayfası
Hem işlem içi hem de işlem dışı barındırma, uygulamayı başlatamadığında özel hata sayfaları oluşturur.
ASP.NET Çekirdek Modülü işlem içi veya işlem dışı istek işleyicisini bulamazsa, bir 500.0 - İşlem İçi/İşlem Dışı İşleyici Yük Hatası durum kodu sayfası görüntülenir.
ASP.NET Çekirdek Modülü uygulamayı başlatamıyorsa işlem içi barındırma için 500.30 - Başlatma Hatası durum kodu sayfası görüntülenir.
ASP.NET Çekirdek Modülü arka uç işlemini başlatamazsa veya arka uç işlemi başlatılırsa ancak yapılandırılan bağlantı noktasında dinlenemezse işlem dışı barındırma için 502.5 - İşlem Hatası durum kodu sayfası görüntülenir.
Bu sayfayı bastırmak ve varsayılan IIS 5xx durum kodu sayfasına dönmek için özniteliğini disableStartUpErrorPage
kullanın. Özel hata iletilerini yapılandırma hakkında daha fazla bilgi için bkz . HTTP Hataları <httpErrors>.
Günlük oluşturma ve yeniden yönlendirme
ASP.NET Çekirdek Modülü, öğesinin ve öznitelikleri ayarlandıysa stdoutLogEnabled
stdout ve stdoutLogFile
stderr konsol çıkışını diske aspNetCore
yönlendirir. Yoldaki stdoutLogFile
tüm klasörler, günlük dosyası oluşturulduğunda modül tarafından oluşturulur. Uygulama havuzunun günlüklerin yazıldığı konuma yazma erişimi olmalıdır (yer tutucunun {APP POOL NAME}
uygulama havuzu adı olduğu yazma izni sağlamak için kullanınIIS AppPool\{APP POOL NAME}
).
İşlem geri dönüştürme/yeniden başlatma gerçekleşmediği sürece günlükler döndürülemez. Günlüklerin tükettiği disk alanını sınırlamak barındırıcının sorumluluğundadır.
stdout günlüğünün kullanılması yalnızca IIS'de barındırılırken veya Visual Studio ile IIS için geliştirme zamanı desteği kullanılırken uygulama başlatma sorunlarını gidermek için önerilir; yerel olarak hata ayıklarken ve uygulamayı IIS Express ile çalıştırırken değil.
Genel uygulama günlüğü amacıyla stdout günlüğünü kullanmayın. ASP.NET Core uygulamasında rutin günlük kaydı için günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlük kitaplığı kullanın. Daha fazla bilgi için bkz . üçüncü taraf günlük sağlayıcıları.
Günlük dosyası oluşturulduğunda zaman damgası ve dosya uzantısı otomatik olarak eklenir. Günlük dosyası adı, zaman damgası, işlem kimliği ve dosya uzantısı (.log
) alt çizgilerle ayrılmış yolun son kesimine stdoutLogFile
(genellikle stdout
) eklenerek oluşturulur. stdoutLogFile
Yol ile stdout
bitiyorsa, 5/2/2018 tarihinde 19:42:32'de oluşturulan 1934 PID'sine sahip bir uygulamanın günlüğü dosya adına stdout_20180205194132_1934.log
sahiptir.
stdoutLogEnabled
False ise, uygulama başlatma sırasında oluşan hatalar yakalanır ve olay günlüğüne 30 KB'a kadar yayılır. Başlatma işleminden sonra tüm ek günlükler atılır.
Aşağıdaki örnek aspNetCore
öğesi, göreli yolda .\log\
stdout günlüğünü yapılandırır. Uygulama havuzu kullanıcısının identity sağlanan yola yazma izni olduğunu onaylayın.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
</aspNetCore>
Azure Uygulaması Hizmeti dağıtımı için bir uygulama yayımlarken, Web SDK değeri stdoutLogFile
olarak \\?\%home%\LogFiles\stdout
ayarlar. Ortam %home
değişkeni, Azure Uygulaması Hizmeti tarafından barındırılan uygulamalar için önceden tanımlanmıştır.
Yol biçimleri hakkında daha fazla bilgi için bkz . Windows sistemlerinde dosya yolu biçimleri.
Gelişmiş tanılama günlükleri
ASP.NET Çekirdek Modülü, gelişmiş tanılama günlükleri sağlamak için yapılandırılabilir. <handlerSettings>
öğesini öğesinde <aspNetCore>
web.config
öğesine ekleyin. ayarıTRACE
, debugLevel
tanılama bilgilerinin daha yüksek aslına uygun olmasını sağlar:
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile="\\?\%home%\LogFiles\stdout"
hostingModel="inprocess">
<handlerSettings>
<handlerSetting name="debugFile" value=".\logs\aspnetcore-debug.log" />
<handlerSetting name="debugLevel" value="FILE,TRACE" />
</handlerSettings>
</aspNetCore>
Değere <handlerSetting>
sağlanan yoldaki klasörler (logs
önceki örnekte) modül tarafından otomatik olarak oluşturulmaz ve dağıtımda önceden mevcut olmalıdır. Uygulama havuzunun günlüklerin yazıldığı konuma yazma erişimi olmalıdır (yer tutucunun {APP POOL NAME}
uygulama havuzu adı olduğu yazma izni sağlamak için kullanınIIS AppPool\{APP POOL NAME}
).
Hata ayıklama düzeyi (debugLevel
) değerleri hem düzeyi hem de konumu içerebilir.
Düzeyler (en azdan en ayrıntılı düzeye sırasıyla):
- HATA
- UYARI
- INFO
- TRACE
Konumlar (birden çok konuma izin verilir):
- KONSOL
- EVENTLOG
- DOSYA
İşleyici ayarları ortam değişkenleri aracılığıyla da sağlanabilir:
ASPNETCORE_MODULE_DEBUG_FILE
: Hata ayıklama günlük dosyasının yolu. (Varsayılan:aspnetcore-debug.log
)ASPNETCORE_MODULE_DEBUG
: Hata ayıklama düzeyi ayarı.
Uyarı
Bir sorunu gidermek için hata ayıklama günlüğünü dağıtımda gerekenden daha uzun süre etkin bırakmayın. Günlüğün boyutu sınırlı değildir. Hata ayıklama günlüğünün etkin durumda bırakılması, kullanılabilir disk alanını tüketebilir ve sunucu veya uygulama hizmetini kilitleyebilir.
Dosyadaki web.config
öğenin bir örneği aspNetCore
için bkz. Web.config ile yapılandırma.
Ara sunucu yapılandırması HTTP protokol ve eşleştirme belirteci kullanır
Yalnızca işlem dışı barındırma için geçerlidir.
ASP.NET Çekirdek Modülü arasında oluşturulan ve Kestrel HTTP protokolünü kullanan ara sunucu. Modül Kestrel ile sunucunun dışında bir konumdan gelen trafiği dinleme riski yoktur.
bir eşleştirme belirteci, tarafından Kestrel alınan isteklerin IIS tarafından proksied olduğunu ve başka bir kaynaktan gelmediğini garanti etmek için kullanılır. Eşleştirme belirteci oluşturulur ve modül tarafından bir ortam değişkenine (ASPNETCORE_TOKEN
) ayarlanır. Eşleştirme belirteci de her prxied isteğinde bir üst bilgi (MS-ASPNETCORE-TOKEN
) olarak ayarlanır. IIS Ara Yazılımı, aldığı her isteği denetlediğinden, eşleştirme belirteci üst bilgisi değerinin ortam değişkeni değeriyle eşleşdiğini onaylar. Belirteç değerleri eşleşmezse istek günlüğe kaydedilir ve reddedilir. Eşleştirme belirteci ortam değişkeni ve modül Kestrel arasındaki trafiğe sunucunun kapalı bir konumundan erişilemez. Eşleştirme belirteci değerini bilmeden, bir siber saldırı aracı IIS Ara Yazılımı'nda denetimi atlayan istekler gönderemez.
IIS Paylaşılan Yapılandırması ile ASP.NET Çekirdek Modülü
ASP.NET Çekirdek Modülü yükleyicisi TrustedInstaller
hesabın ayrıcalıklarıyla çalışır. Yerel sistem hesabının IIS Paylaşılan Yapılandırması tarafından kullanılan paylaşım yolu için değiştirme izni olmadığından, paylaşımdaki dosyada applicationHost.config
modül ayarlarını yapılandırmaya çalışırken yükleyici erişim reddedildi hatası oluşturur.
IIS yüklemesiyle aynı makinede IIS Paylaşılan Yapılandırması kullanırken, parametresi olarak ayarlanmış 1
ASP.NET Core Barındırma Paketi yükleyicisini OPT_NO_SHARED_CONFIG_CHECK
çalıştırın:
dotnet-hosting-{VERSION}.exe OPT_NO_SHARED_CONFIG_CHECK=1
Paylaşılan yapılandırmanın yolu IIS yüklemesi ile aynı makinede değilse şu adımları izleyin:
- IIS Paylaşılan Yapılandırmasını devre dışı bırakın.
- Yükleyiciyi çalıştırın.
- Güncelleştirilmiş
applicationHost.config
dosyayı paylaşıma aktarın. - IIS Paylaşılan Yapılandırmasını yeniden etkinleştirin.
Modül sürümü ve Barındırma Paketi yükleyici günlükleri
Yüklü ASP.NET Çekirdek Modülünün sürümünü belirlemek için:
- Barındırma sisteminde adresine
%windir%\System32\inetsrv
gidin. aspnetcore.dll
Dosyayı bulun.- Dosyaya sağ tıklayın ve bağlam menüsünden Özellikler'i seçin.
- Ayrıntılar sekmesini seçin. Dosya sürümü ve Ürün sürümü, modülün yüklü sürümünü temsil edilir.
Modülün Barındırma Paketi yükleyici günlükleri adresinde C:\\Users\\%UserName%\\AppData\\Local\\Temp
bulunur. Dosya, yer tutucunun {TIMESTAMP}
zaman damgası olduğu adlı dd_DotNetCoreWinSvrHosting__\{TIMESTAMP}_000_AspNetCoreModule_x64.log
dosyadır.
Modül, şema ve yapılandırma dosyası konumları
Modül
IIS (x86/amd64):
%windir%\System32\inetsrv\aspnetcore.dll
%windir%\SysWOW64\inetsrv\aspnetcore.dll
%ProgramFiles%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll
%ProgramFiles(x86)%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll
IIS Express (x86/amd64):
%ProgramFiles%\IIS Express\aspnetcore.dll
%ProgramFiles(x86)%\IIS Express\aspnetcore.dll
%ProgramFiles%\IIS Express\Asp.Net Core Module\V2\aspnetcorev2.dll
%ProgramFiles(x86)%\IIS Express\Asp.Net Core Module\V2\aspnetcorev2.dll
Şema
IIS
%windir%\System32\inetsrv\config\schema\aspnetcore_schema.xml
%windir%\System32\inetsrv\config\schema\aspnetcore_schema_v2.xml
IIS Express
%ProgramFiles%\IIS Express\config\schema\aspnetcore_schema.xml
%ProgramFiles%\IIS Express\config\schema\aspnetcore_schema_v2.xml
Yapılandırma
IIS
%windir%\System32\inetsrv\config\applicationHost.config
IIS Express
Visual Studio:
{APPLICATION ROOT}\.vs\config\applicationHost.config
iisexpress.exe CLI:
%USERPROFILE%\Documents\IISExpress\config\applicationhost.config
Dosyaları dosyada applicationHost.config
arayarak aspnetcore
bulabilirsiniz.
ASP.NET Çekirdek Modülü (ANCM), web isteklerini arka uç ASP.NET Core uygulamalarına iletmek için IIS işlem hattına takılan yerel bir IIS modülüdür.
Desteklenen Windows sürümleri:
- Windows 7 veya üzeri
- Windows Server 2008 R2 veya üzeri
Modül yalnızca ile Kestrelçalışır. Modül HTTP.sys ile uyumlu değil.
ASP.NET Core uygulamaları IIS çalışan işleminden ayrı bir işlemde çalıştığından, modül işlem yönetimini de işler. Modül, ilk istek geldiğinde ASP.NET Core uygulaması için işlemi başlatır ve kilitlenmesi durumunda uygulamayı yeniden başlatır. Bu temelde, Windows İşlem Etkinleştirme Hizmeti (WAS) tarafından yönetilen IIS'de işlem halinde çalışan ASP.NET 4.x uygulamalarında görülen davranışla aynıdır.
Aşağıdaki diyagramda IIS, ASP.NET Çekirdek Modülü ve bir uygulama arasındaki ilişki gösterilmektedir:
Web'den çekirdek modundaki HTTP.sys sürücüsüne istekler gelir. Sürücü istekleri web sitesinin yapılandırılmış bağlantı noktası üzerinden (genellikle 80 (HTTP) veya 443 (HTTPS)) IIS'ye yönlendirir. Modül istekleri uygulama için 80 veya 443 olmayan rastgele bir bağlantı noktası üzerinden Kestrel'e iletir.
Modül bağlantı noktasını başlatma sırasında bir ortam değişkeni aracılığıyla belirtir ve IIS Tümleştirme Ara Yazılımı sunucuyu http://localhost:{port}
üzerinden dinleyecek şekilde yapılandırır. Ek denetimler gerçekleştirilir ve modülden kaynaklanmayan istekler reddedilir. Modül HTTPS iletmeyi desteklemez, dolayısıyla IIS tarafından HTTPS üzerinden alınan istekler bile HTTP üzerinden iletilir.
Kestrel isteği modülden aldıktan sonra, istek ASP.NET Core ara yazılım işlem hattına gönderilir. Ara yazılım işlem hattı isteği işler ve bir HttpContext
örneği olarak uygulamanın mantığına geçirir. IIS Tümleştirmesi tarafından eklenen ara yazılım, isteği Kestrel'e iletme işlemini gerçekleştirmek için şemayı, uzak IP'yi ve yol tabanını güncelleştirir. Uygulamanın yanıtı IIS'ye geri geçirilir ve IIS de bunu geriye, isteği başlatan HTTP istemcisine gönderir.
Windows Kimlik Doğrulaması gibi birçok yerel modül etkin kalır. ASP.NET Çekirdek Modülü ile etkin IIS modülleri hakkında daha fazla bilgi edinmek için bkz . ASP.NET Core ile IIS modülleri.
ASP.NET Core Modülü şunları da yapabilir:
- Çalışan işlemi için ortam değişkenlerini ayarlayın.
- Başlatma sorunlarını gidermek için stdout çıkışını dosya depolamaya günlükleyin.
- Windows kimlik doğrulama belirteçlerini iletme.
ASP.NET Çekirdek Modülünü (ANCM) yükleme ve kullanma
ASP.NET Core Modülünü yükleme yönergeleri için bkz . .NET Core Barındırma Paketini Yükleme.
web.config ile yapılandırma
ASP.NET Çekirdek Modülü, sitenin aspNetCore
web.config dosyasındaki düğümün system.webServer
bölümüyle yapılandırılır.
Aşağıdaki web.config dosyası, ç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>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout" />
</system.webServer>
</configuration>
Aşağıdaki web.config, bağımsız dağıtım için yayımlanır:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\MyApp.exe"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout" />
</system.webServer>
</configuration>
Bir uygulama Azure Uygulaması Hizmetine stdoutLogFile
dağıtıldığında yol olarak \\?\%home%\LogFiles\stdout
ayarlanır. Yol, stdout günlüklerini hizmet tarafından otomatik olarak oluşturulan bir konum olan LogFiles klasörüne kaydeder.
IIS alt uygulama yapılandırması hakkında bilgi için bkz . IIS ile Windows'ta Konak ASP.NET Çekirdeği.
aspNetCore öğesinin öznitelikleri
Öznitelik | Açıklama | Varsayılan |
---|---|---|
arguments |
İsteğe bağlı dize özniteliği. processPath'te belirtilen yürütülebilir dosyaya yönelik bağımsız değişkenler. |
|
disableStartUpErrorPage |
İsteğe bağlı Boole özniteliği. True ise, 502.5 - İşlem Hatası sayfası gösterilmez ve web.config dosyasında yapılandırılan 502 durum kodu sayfası önceliklidir. |
false |
forwardWindowsAuthToken |
İsteğe bağlı Boole özniteliği. Doğruysa, belirteç %ASPNETCORE_PORT% üzerinde istek başına 'MS-ASPNETCORE-WINAUTHTOKEN' üst bilgisi olarak dinleyen alt işleme iletilir. İstek başına bu belirteçte CloseHandle çağrısı yapmak bu işlemin sorumluluğundadır. |
true |
processesPerApplication |
İsteğe bağlı tamsayı özniteliği. processPath ayarında belirtilen işlemin uygulama başına artırılabilen örneklerinin sayısını belirtir. Ayar |
Varsayılan: 1 Min: 1 Max: 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. processPath'te belirtilen işlemin dakika başına kilitlenmesine izin verilen sayısını belirtir. Bu sınır aşılırsa modül, dakikanın geri kalanında işlemi başlatmayı durdurur. |
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, |
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. Modül, yeni bir istek aldığında işlemi yeniden başlatmayı dener ve uygulama son sıralı dakika içinde rapidFailsPerMinute sayısını başlatamadığı sürece sonraki gelen isteklerde işlemi yeniden başlatmaya çalışır. 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 ise, processPath'te belirtilen işlem için stdout ve stderr, stdoutLogFile içinde belirtilen dosyaya yönlendirilir. |
false |
stdoutLogFile |
İsteğe bağlı dize özniteliği. processPath'te belirtilen işlemden stdout ve stderr'ın günlüğe kaydedildiği göreli veya mutlak dosya yolunu belirtir. Göreli yollar, sitenin köküne göredir. ile |
aspnetcore-stdout |
Ortam değişkenlerini ayarlama
Öznitelikteki processPath
işlem için ortam değişkenleri belirtilebilir. Bir koleksiyon öğesinin <environmentVariable>
alt öğesiyle bir <environmentVariables>
ortam değişkeni belirtin.
Uyarı
Bu bölümde ayarlanan ortam değişkenleri, aynı ada sahip sistem ortam değişkenleriyle çakışıyor. Ortam değişkeni hem web.config dosyasında hem de Windows'daki sistem düzeyinde ayarlanırsa, web.config dosyasındaki değer sistem ortamı değişken değerine (örneğin, ASPNETCORE_ENVIRONMENT: Development;Development
) eklenir ve bu da uygulamanın başlatılmasını engeller.
Aşağıdaki örnek iki ortam değişkenini ayarlar. ASPNETCORE_ENVIRONMENT
, uygulamanın ortamını olarak Development
yapılandırıyor. Geliştirici, bir uygulama özel durumu hata ayıklarken Geliştirici Özel Durum Sayfası'nı yüklemeye zorlamak için web.config dosyasında 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="\\?\%home%\LogFiles\stdout">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
<environmentVariable name="CONFIG_DIR" value="f:\application_config" />
</environmentVariables>
</aspNetCore>
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.
app_offline.htm
Bir uygulamanın kök dizininde adıyla app_offline.htm
bir dosya algılanırsa, ASP.NET Çekirdek Modülü uygulamayı düzgün bir şekilde kapatmayı ve gelen istekleri işlemeyi durdurmayı dener. uygulama içinde shutdownTimeLimit
tanımlanan saniye sayısından sonra çalışmaya devam ediyorsa ASP.NET Çekirdek Modülü çalışan işlemi sonlandırıyor.
app_offline.htm
Dosya mevcutken, ASP.NET Çekirdek Modülü dosyanın içeriğini app_offline.htm
geri göndererek isteklere yanıt verir. app_offline.htm
Dosya kaldırıldığında, sonraki istek uygulamayı başlatır.
Başlangıç hata sayfası
ASP.NET Çekirdek Modülü arka uç işlemini başlatamazsa veya arka uç işlemi başlatılır ancak yapılandırılan bağlantı noktasında dinlenemezse, 502.5 - İşlem Hatası durum kodu sayfası görüntülenir. Bu sayfayı engellemek ve varsayılan IIS 502 durum kodu sayfasına dönmek için özniteliğini disableStartUpErrorPage
kullanın. Özel hata iletilerini yapılandırma hakkında daha fazla bilgi için bkz . HTTP Hataları <httpErrors>.
Günlük oluşturma ve yeniden yönlendirme
ASP.NET Çekirdek Modülü, öğesinin ve öznitelikleri ayarlandıysa stdoutLogEnabled
stdout ve stdoutLogFile
stderr konsol çıkışını diske aspNetCore
yönlendirir. Yoldaki stdoutLogFile
tüm klasörler, günlük dosyası oluşturulduğunda modül tarafından oluşturulur. Uygulama havuzunun günlüklerin yazıldığı konuma yazma erişimi olmalıdır (yazma izni sağlamak için kullanın IIS AppPool\<app_pool_name>
).
İşlem geri dönüştürme/yeniden başlatma gerçekleşmediği sürece günlükler döndürülemez. Günlüklerin tükettiği disk alanını sınırlamak barındırıcının sorumluluğundadır.
stdout günlüğünün kullanılması yalnızca IIS'de barındırılırken veya Visual Studio ile IIS için geliştirme zamanı desteği kullanılırken uygulama başlatma sorunlarını gidermek için önerilir; yerel olarak hata ayıklarken ve uygulamayı IIS Express ile çalıştırırken değil.
Genel uygulama günlüğü amacıyla stdout günlüğünü kullanmayın. ASP.NET Core uygulamasında rutin günlük kaydı için günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlük kitaplığı kullanın. Daha fazla bilgi için bkz . üçüncü taraf günlük sağlayıcıları.
Günlük dosyası oluşturulduğunda zaman damgası ve dosya uzantısı otomatik olarak eklenir. Günlük dosyası adı, zaman damgası, işlem kimliği ve dosya uzantısı (.log) alt çizgilerle ayrılmış yolun son kesimine stdoutLogFile
(genellikle stdout) eklenerek oluşturulur. stdoutLogFile
Yol stdout ile biterse, 5/2/2018 tarihinde 19:42:32'de 19:42:32'de oluşturulan 1934 PID'sine sahip bir uygulamanın günlüğü stdout_20180205194132_1934.log dosya adına sahiptir.
Aşağıdaki örnek aspNetCore
öğesi, göreli yolda .\log\
stdout günlüğünü yapılandırır. AppPool kullanıcısının identity sağlanan yola yazma izni olduğunu onaylayın.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout">
</aspNetCore>
Azure Uygulaması Hizmeti dağıtımı için bir uygulama yayımlarken, Web SDK değeri stdoutLogFile
olarak \\?\%home%\LogFiles\stdout
ayarlar. Ortam %home
değişkeni, Azure Uygulaması Hizmeti tarafından barındırılan uygulamalar için önceden tanımlanmıştır.
Günlük filtresi kuralları oluşturmak için ASP.NET Core günlük kaydı belgelerinin Kodda günlük filtresi kurallarını uygulama bölümüne bakın.
Yol biçimleri hakkında daha fazla bilgi için bkz . Windows sistemlerinde dosya yolu biçimleri.
Ara sunucu yapılandırması HTTP protokol ve eşleştirme belirteci kullanır
ASP.NET Çekirdek Modülü arasında oluşturulan ve Kestrel HTTP protokolünü kullanan ara sunucu. Modül Kestrel ile sunucunun dışında bir konumdan gelen trafiği dinleme riski yoktur.
bir eşleştirme belirteci, tarafından Kestrel alınan isteklerin IIS tarafından proksied olduğunu ve başka bir kaynaktan gelmediğini garanti etmek için kullanılır. Eşleştirme belirteci oluşturulur ve modül tarafından bir ortam değişkenine (ASPNETCORE_TOKEN
) ayarlanır. Eşleştirme belirteci de her prxied isteğinde bir üst bilgi (MS-ASPNETCORE-TOKEN
) olarak ayarlanır. IIS Ara Yazılımı, aldığı her isteği denetlediğinden, eşleştirme belirteci üst bilgisi değerinin ortam değişkeni değeriyle eşleşdiğini onaylar. Belirteç değerleri eşleşmezse istek günlüğe kaydedilir ve reddedilir. Eşleştirme belirteci ortam değişkeni ve modül Kestrel arasındaki trafiğe sunucunun kapalı bir konumundan erişilemez. Eşleştirme belirteci değerini bilmeden, bir siber saldırı aracı IIS Ara Yazılımı'nda denetimi atlayan istekler gönderemez.
IIS Paylaşılan Yapılandırması ile ASP.NET Çekirdek Modülü
ASP.NET Çekirdek Modülü yükleyicisi, TrustedInstaller hesabının ayrıcalıklarıyla çalışır. Yerel sistem hesabının IIS Paylaşılan Yapılandırması tarafından kullanılan paylaşım yolu için değiştirme izni olmadığından, paylaşımdaki applicationHost.config dosyasında modül ayarlarını yapılandırmaya çalışırken yükleyici erişim reddedildi hatası oluşturur.
IIS Paylaşılan Yapılandırması kullanırken şu adımları izleyin:
- IIS Paylaşılan Yapılandırmasını devre dışı bırakın.
- Yükleyiciyi çalıştırın.
- Güncelleştirilmiş applicationHost.config dosyasını paylaşıma aktarın.
- IIS Paylaşılan Yapılandırmasını yeniden etkinleştirin.
Modül sürümü ve Barındırma Paketi yükleyici günlükleri
Yüklü ASP.NET Çekirdek Modülünün sürümünü belirlemek için:
- Barındırma sisteminde %windir%\System32\inetsrv konumuna gidin.
- aspnetcore.dll dosyasını bulun.
- Dosyaya sağ tıklayın ve bağlam menüsünden Özellikler'i seçin.
- Ayrıntılar sekmesini seçin. Dosya sürümü ve Ürün sürümü, modülün yüklü sürümünü temsil edilir.
Modülün Barındırma Paketi yükleyici günlükleri C:\Users\%UserName%\AppData\Local\Temp konumunda bulunur. Dosya dd_DotNetCoreWinSvrHosting__<timestamp>_000_AspNetCoreModule_x64.log olarak adlandırılır.
Modül, şema ve yapılandırma dosyası konumları
Modül
IIS (x86/amd64):
%windir%\System32\inetsrv\aspnetcore.dll
%windir%\SysWOW64\inetsrv\aspnetcore.dll
IIS Express (x86/amd64):
%ProgramFiles%\IIS Express\aspnetcore.dll
%ProgramFiles(x86)%\IIS Express\aspnetcore.dll
Şema
IIS
- %windir%\System32\inetsrv\config\schema\aspnetcore_schema.xml
IIS Express
- %ProgramFiles%\IIS Express\config\schema\aspnetcore_schema.xml
Yapılandırma
IIS
- %windir%\System32\inetsrv\config\applicationHost.config
IIS Express
Visual Studio: {APPLICATION ROOT}\.vs\config\applicationHost.config
iisexpress.exe CLI: %USERPROFILE%\Documents\IISExpress\config\applicationhost.config
Dosyalar, applicationHost.config dosyasında aspnetcore aranarak bulunabilir.
Ek kaynaklar
- IIS ile Windows'da ASP.NET Core'u barındırma
- ASP.NET Core uygulamalarını Azure App Service’e dağıtma
- ASP.NET Çekirdek Modülü başvuru kaynağı [varsayılan dal (ana)]: Belirli bir sürümü seçmek için Dal açılan listesini kullanın (örneğin,
release/3.1
). - ASP.NET Core içeren IIS modülleri
ASP.NET Core