ASP.NET Core Modülü
, Tom Dykstra, Rick Strahl, ChrisNo, Rick Anderson, sourabh Shirhattive ka kotalık
ASP.NET Core modülü, ııs işlem hattına takılan ve ASP.NET Core uygulamaların ııs ile çalışmasına izin veren yerel bir ııs modülüdür. ASP.NET Core uygulamalarını ııs ile birlikte çalıştırın:
w3wp.exeişlem içi barındırma modeliolarak adlandırılan ııs çalışan işleminin () içinde bir ASP.NET Core uygulaması barındırma.- Kestrel işlem dışı barındırma modeliolarak adlandırılan, sunucuyu çalıştıran bir arka uca ASP.NET Core web isteklerini iletme.
Barındırma modellerinin her biri arasında denge vardır. Varsayılan olarak, daha iyi performans ve tanılama nedeniyle işlem içi barındırma modeli kullanılır.
ASP.NET Core modülünü Install
ASP.NET Core modülü .net core barındırma paketinden.net core çalışma zamanı ile yüklenir. ASP.NET Core modülü, .net 'in lts sürümleriyle ileri ve geriye dönük olarak uyumludur.
Yeni değişiklikler ve güvenlik danışmanları Duyurular reposlarında raporlandı. Duyurular, Etiket filtresi seçerek belirli bir sürümle sınır olabilir.
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 dahil daha fazla bilgi için bkz Hosting Paketi ..
ASP.NET Core uygulamasını bir ııs sunucusuna yayımlamaya yönelik bir öğretici deneyimi için, bkz IIS'ASP.NET Core uygulama yayımlama ..
ASP.NET Core modülü, ııs ardışık düzenine şu şekilde takılan yerel bir ııs modülüdür:
w3wp.exeişlem içi barındırma modeliolarak adlandırılan ııs çalışan işleminin () içinde bir ASP.NET Core uygulaması barındırın.- işlem dışı barındırma modeliolarak adlandırılan, Kestrel sunucuyuçalıştıran bir arka uca ASP.NET Core web isteklerini iletme.
desteklenen Windows sürümleri:
- Windows 7 veya üzeri
- Windows Server 2012 R2 veya üzeri
İşlem içinde barındırırken, modül IIS HTTP sunucusu () olarak adlandırılan IIS için işlem içi sunucu uygulamasını kullanır IISHttpServer .
İşlem dışı barındırma sırasında modül yalnızca ile birlikte kullanılabilir Kestrel . Modül HTTP.sysile çalışmıyor.
Barındırma modelleri
İşlem içi barındırma modeli
uygulamalar, işlem içi barındırma modelinde varsayılan olarak ASP.NET Core.
İşlem içi barındırma sırasında aşağıdaki özellikler geçerlidir:
Sunucu yerine IIS HTTP sunucusu (
IISHttpServer) kullanılır Kestrel . İşlem içi için Createdefaultbuilder aşağıdakileri öğesine çağırır UseIIS :- Kaydolun
IISHttpServer. - ASP.NET Core modülünün arkasında çalışırken sunucunun dinlemesi gereken bağlantı noktasını ve temel yolu yapılandırın.
- Konağı, başlatma hatalarını yakalamak üzere yapılandırın.
- Kaydolun
RequestTimeout özniteliği işlem içi barındırma için uygulanmaz.
Uygulama havuzunu uygulamalar arasında paylaşma desteklenmez. Uygulama başına bir uygulama havuzu kullanın.
Web dağıtımı kullanırken veya dağıtıma el ile bir
app_offline.htmDosyayerleştirilirken, açık bir bağlantı varsa uygulama hemen kapanmayabilir. Örneğin, bir WebSocket bağlantısı, uygulamanın kapatılmasını erteleyebilir.Uygulamanın mimarisi (bit genişliği) ve yüklü çalışma zamanının (x64 veya x86) uygulama havuzunun mimarisiyle eşleşmesi gerekir.
İstemci bağlantısı kesiliyor algılandı.
HttpContext.RequestAbortedİstemci bağlantısı kesildiğinde iptal belirteci iptal edilir.ASP.NET Core 2.2.1 veya önceki sürümlerde, GetCurrentDirectory uygulamanın dizini yerine ııs tarafından başlatılan işlemin çalışan dizinini döndürür (örneğin,
C:\Windows\System32\inetsrviçinw3wp.exe).Uygulamanın geçerli dizinini ayarlayan örnek kod için,
CurrentDirectoryHelperssınıfınabakın. Yöntemini çağırınSetCurrentDirectory. GetCurrentDirectoryUygulamanın dizinini sağlamak için sonraki çağrılar.İşlem içi barındırma sırasında, AuthenticateAsync bir kullanıcıyı başlatmak için dahili olarak çağrılmaz. Bu nedenle, IClaimsTransformation her kimlik doğrulaması sonrasında talepleri dönüştürmek için kullanılan bir uygulama varsayılan olarak etkinleştirilmez. Talepleri bir IClaimsTransformation uygulamayla dönüştürürken, AddAuthentication kimlik doğrulama hizmetleri Ekle ' yi çağırın:
public void ConfigureServices(IServiceCollection services) { services.AddTransient<IClaimsTransformation, ClaimsTransformer>(); services.AddAuthentication(IISServerDefaults.AuthenticationScheme); } public void Configure(IApplicationBuilder app) { app.UseAuthentication(); }- Web paketi (tek dosya) dağıtımları desteklenmez.
İşlem dışı barındırma modeli
Bir uygulamayı işlem dışı barındırmak üzere yapılandırmak için, <AspNetCoreHostingModel> özelliğinin değerini OutOfProcess Proje dosyasında () olarak ayarlayın .csproj :
<PropertyGroup>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
İşlem içi barındırma InProcess , varsayılan değer olan ile ayarlanır.
Değeri <AspNetCoreHostingModel> büyük/küçük harfe duyarlıdır inprocess ve outofprocess geçerli değerlerdir.
Kestrel sunucu IIS HTTP sunucusu yerine kullanılır ( IISHttpServer ).
İşlem dışı için şunu CreateDefaultBuilder çağırır UseIISIntegration :
- ASP.NET Core modülünün arkasında çalışırken sunucunun dinlemesi gereken bağlantı noktasını ve temel yolu yapılandırın.
- Konağı, başlatma hatalarını yakalamak üzere yapılandırın.
Barındırma modeli değişiklikleri
hostingModelAyar web.config dosyada değiştirilirse ( ile web.config yapılandırma bölümünde açıklanmıştır), modül IIS için çalışan işlemini geri dönüştü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şlem olarak çoğaltılır.
İşlem adı
Process.GetCurrentProcess().ProcessNameraporlar 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 Core modülüyle etkin ııs modülleri hakkında daha fazla bilgi edinmek için bkz ASP.NET Core ile IIS modülleri ..
ASP.NET Core modülü de şunları yapabilir:
- Çalışan işlem için ortam değişkenlerini ayarlayın.
- Başlatma sorunlarını gidermek için stdout çıkışını dosya depolama alanına kaydedin.
- Windows kimlik doğrulama belirteçlerini ilet.
ASP.NET Core modülünü yüklemek ve kullanmak
ASP.NET Core modülünün nasıl yükleneceğine ilişkin yönergeler için bkz. .net Core barındırma paketi 'ni yüklemek. ASP.NET Core modülü, .net 'in lts sürümleriyle ileri ve geriye dönük olarak uyumludur.
Yeni değişiklikler ve güvenlik danışmanları Duyurular reposlarında raporlandı. Duyurular, Etiket filtresi seçerek belirli bir sürümle sınır olabilir.
web.config ile yapılandırma
ASP.NET Core modülü, aspNetCore system.webServer sitenin web.config dosyasındaki düğümünün bölümüyle yapılandırılır.
aşağıdaki web.config dosya, çerçeveye bağlı bir dağıtım için yayımlanır ve ASP.NET Core modülünü site isteklerini işleyecek şekilde yapılandırı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 , kendinden bağımsız bir dağıtımiç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, false öğesi içinde belirtilen ayarların <location> uygulamanın bir alt dizininde bulunan uygulamalar tarafından devralınmadığını belirtmek için olarak ayarlanır.
Bir uygulama Azure App Servicedağıtıldığında, stdoutLogFile yol olarak ayarlanır \\?\%home%\LogFiles\stdout . 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 ASP.NET Core Windows konak konakları ..
AspNetCore öğesinin öznitelikleri
| Öznitelik | Açıklama | Varsayılan |
|---|---|---|
arguments |
İsteğe bağlı dize özniteliği. ProcessPath içinde belirtilen yürütülebilir dosya için bağımsız değişkenler. |
|
disableStartUpErrorPage |
İsteğe bağlı Boolean özniteliği. Doğru ise, 502,5-Işlem hatası sayfası bastırılır ve web.config yapılandırılan 502 durum kodu sayfası önceliklidir. |
false |
forwardWindowsAuthToken |
İsteğe bağlı Boolean özniteliği. True ise, belirteç |
true |
hostingModel |
İsteğe bağlı dize özniteliği. Barındırma modelini işlem içi ( |
InProcessinprocess |
processesPerApplication |
İsteğe bağlı tamsayı özniteliği. ProcessPath ayarında belirtilen işlemin örnek sayısını, uygulama başına bir şekilde işleyecek şekilde belirtir. †İşlem içi barındırma için, değer ile sınırlıdır Ayar |
Varsayılan: 1Dk: 1Max: 100† |
processPath |
Gerekli dize özniteliği. HTTP isteklerini dinleyen bir işlemi başlatan yürütülebilir dosyanın yolu. Göreli yollar de destekler. Yol ile |
|
rapidFailsPerMinute |
İsteğe bağlı tamsayı özniteliği. processPath içinde belirtilen işleme dakika başına kilitlenme izni verilen işlem 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çinde barındırma ile desteklenmiyor. |
Varsayılan: 10Dk: 0Max: 100 |
requestTimeout |
İsteğe bağlı zamanpan ö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 bir sürümüyle birlikte gönderilen ASP.NET Core Modülü sürümlerinde, saat, dakika ve saniye İşlem içinde barındırma için geçerli değildir. İşlem sırasında barındırma için modül, uygulamanın isteği işlemesi için bekler. Dizenin dakika ve saniye segmentleri için geçerli değerler 0-59 aralığındadır. Dakika veya saniye değerinde 60 kullanımının sonucunda 500 - İç Sunucu Hatası olur. |
Varsayılan: 00:02:00Dk: 00:00:00Max: 360:00:00 |
shutdownTimeLimit |
İsteğe bağlı tamsayı özniteliği. Modülün yürütülebilir dosya algılandığında yürütülebilir dosyanın tam olarak kapatılmasınıapp_offline.htm süresi. |
Varsayılan: 10Dk: 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şlemi başlatması için bekleyeceği saniye olarak süre. Bu süre sınırı aşılırsa modül işlemi sonlar. İşlem içinde barındırıyorsanız: İşlem yeniden başlatılmaz ve rapidFailsPerMinute ayarını kullanmaz. İşlem dışında barındırıyor: Modül, yeni bir istek aldığında işlemi yeniden başlatmayı ve uygulamanın son dakika içinde rapidFailsPerMinute sayısını başlatamadıkça sonraki gelen isteklerde işlemi yeniden başlatmayı denemeye devam eder. 0 (sıfır) değeri sonsuz bir zaman aşımı olarak kabullanmaz. |
Varsayılan: 120Dk: 0Max: 3600 |
stdoutLogEnabled |
İsteğe bağlı Boole özniteliği. True ise, processPath içinde belirtilen işlem için stdout ve stderr, stdoutLogFile içinde belirtilen dosyaya yeniden yönlendiriliyor. |
false |
stdoutLogFile |
İsteğe bağlı dize özniteliği. processPath içinde belirtilen işlemden stdout ve stderr'in günlüğe kaydedileceğini göreli veya mutlak dosya yolunu belirtir. Göreli yollar sitenin köküne göredir. ile başlayan tüm |
aspnetcore-stdout |
Ortam değişkenlerini belirleme
Öznitelikte işlem için ortam değişkenleri processPath belirtilebilir. Bir koleksiyon öğesinin alt <environmentVariable> öğesiyle bir ortam <environmentVariables> değişkeni belirtin. Bu bölümde ayarlanmış ortam değişkenleri, sistem ortam değişkenlerine göre önceliklidir.
Aşağıdaki örnek, içinde iki ortam değişkeni web.config ayarlar. ASPNETCORE_ENVIRONMENT uygulamanın ortamını olarak Development yapılandırıyor. Bir geliştirici, bir uygulama özel durumu hata ayıklaması sırasında Geliştirici Özel Durum Sayfası'nın yüklenmeye zorlayıcısı için dosyada web.config bu değeri geçici olarak ayarlamaya zorlar. CONFIG_DIR , geliştiricinin, uygulamanın yapılandırma dosyasını yüklemeye ilişkin bir yol oluşturmak için başlangıçtaki değeri yazan kodu yazdığı kullanıcı tanımlı ortam değişkenine bir örnektir.
<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 ayarlamanın web.config alternatifi, özelliğini yayımlama profiline ( ) veya <EnvironmentName> proje .pubxml dosyasına eklemektir. Bu yaklaşım, proje web.config yayımlanırken ortamı olarak ayarlar:
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
Uyarı
Ortam değişkenlerini yalnızca İnternet gibi güvenilmeyen ağların erişilemeyen hazırlama ve test ASPNETCORE_ENVIRONMENT Development sunucularında olarak ayarlayın.
app_offline.htm
Uygulamanın kök dizininde adı olan bir dosya algılanırsa, ASP.NET Core Modülü uygulamayı yetkisiz bir şekilde kapatmaya ve gelen istekleri işlemeyi app_offline.htm durdurmaya çalışır. Uygulama içinde tanımlanan saniye sayısından sonra hala shutdownTimeLimit çalışıyorsa, ASP.NET Core Modülü çalışan işlemi sonlar.
Dosya app_offline.htm mevcutken, ASP.NET Core modülünün içeriği geri göndererek isteklere yanıt app_offline.htm verir. Dosya app_offline.htm kaldırıldığı zaman, sonraki istek uygulamayı başlatır.
İşlem dışında barındırma modelini kullanırken, açık bir bağlantı varsa uygulama hemen kapatılamayabilirsiniz. Örneğin, bir WebSocket bağlantısı uygulamanın kapanmasını geciktirebilirsiniz.
Başlatma hatası sayfası
Hem işlem içinde hem de işlem dışında barındırma, uygulamayı başlatamazken özel hata sayfaları üretir.
ASP.NET Core Modülü işlem içinde veya işlem dışında istek işleyicisini bulamazsa, 500.0 - İşlem Içinde/İşlem Dışında İşleyicisi Yük Hatası durum kodu sayfası görüntülenir.
ASP.NET Core Modülünün uygulamayı başlatamazsa işlem sırasında barındırma için 500.30 - Başlatma Hatası durum kodu sayfası görüntülenir.
ASP.NET Core 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ını dinleyemezse işlem dışında barındırma için 502.5 - İşlem Hatası durum kodu sayfası görüntülenir.
Bu sayfayı gizleme 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 Core Modülü, öğenin ve öznitelikleri ayarlanmışsa stdout ve stderr stdoutLogEnabled stdoutLogFile konsol aspNetCore çıkışını diske yeniden yönlendiriyor. Günlük dosyası stdoutLogFile oluşturulduğunda, yol içinde herhangi bir klasör modül tarafından oluşturulur. Uygulama havuzunun, günlüklerin yazıldığı konuma yazma erişimi olması gerekir (yazma izni IIS AppPool\<app_pool_name> sağlamak için kullanın).
İşlem geri dönüştürme/yeniden başlatma oluşmadıkça günlükler döndürülemez. Günlüklerin tükettiği disk alanını sınırlamak barındırma sorumluluğundadır.
stdout günlüğünün kullanılması yalnızca IIS'de barındırırken veya Visual Studio ile IISiçin geliştirme zamanı desteğini kullanırken uygulama başlatma sorunlarını gidermek için önerilir; yerel olarak hata ayıklarken ve uygulamayı IIS Express.
Stdout günlüğünü genel uygulama günlüğü amaçlarıyla kullanmayın. Bir uygulamanın günlük kaydı ASP.NET Core 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 otomatik olarak bir zaman damgası ve dosya uzantısı eklenir. Günlük dosyası adı, yolun son kesimine (genellikle ) alt çizgiyle sınırlandırılmış zaman damgası, işlem kimliği ve dosya uzantısı .log ( ) ek adıyla stdoutLogFile stdout oluşur. Yol ile stdoutLogFile stdout biterse, 5/2/2018 tarihinde 19:42:32'de oluşturulan 1934 PID'i olan bir uygulamanın günlüğü dosya adına sahip stdout_20180205194132_1934.log olur.
False stdoutLogEnabled ise, uygulama başlatma sırasında oluşan hatalar yakalanır ve 30 KB'a kadar olay günlüğüne yayımlanır. Başlatmadan sonra tüm ek günlükler atılır.
Aşağıdaki örnek aspNetCore öğesi göreli yolda stdout günlüğünü yapılandırıyor. .\log\ AppPool kullanıcı kimliğinin sağlanan yola yazma izni olduğunu onaylayın.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
</aspNetCore>
Bir uygulamayı dağıtım Azure App Service Web SDK'sı değeri stdoutLogFile olarak \\?\%home%\LogFiles\stdout ayarlar. Ortam %home değişkeni, ortam değişkeni tarafından barındırılan uygulamalar için Azure App Service.
Günlük filtresi kuralları oluşturmak için günlük kaydı belgelerinin Koda günlük filtresi kuralları ASP.NET Core bakın.
Yol biçimleri hakkında daha fazla bilgi için bkz. Sistemlerde dosya Windows biçimleri.
Gelişmiş tanılama günlükleri
ASP.NET Core Modülü, gelişmiş tanılama günlükleri sağlamak için yapılandırılabilir. öğesini <handlerSettings> <aspNetCore> öğesinde öğesine web.config ekleyin. olarak debugLevel TRACE ayarı, tanılama bilgilerine daha yüksek bir uygunluk 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>
Günlük dosyası oluşturulduğunda, yol içinde herhangi bir klasör logs (önceki örnekte) modül tarafından oluşturulur. Uygulama havuzunun, günlüklerin yazıldığı konuma yazma erişimi olması gerekir (yazma izni sağlamak için yer tutucu, uygulama havuzu adı olan IIS AppPool\{APP POOL NAME} {APP POOL NAME} kullanın).
Hata ayıklama düzeyi ( debugLevel ) değerleri hem düzeyi hem de konumu içerebilir.
Düzeyler (en az ayrıntılıdan en fazla düzeye doğru sıra):
- HATA
- UYARI
- BİLGİ
- TRACE
Konumlar (birden çok konuma izin verilir):
- KONSOL
- EVENTLOG
- DOSYA
İşleyici ayarları ortam değişkenleri aracılığıyla da sağlanmalıdır:
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 dağıtımda hata ayıklama günlüğünü gerekenden daha uzun süre etkin bırakın. Günlüğün boyutu sınırlı değildir. Hata ayıklama günlüğünün etkin bırakarak kullanılabilir disk alanı tüketilebilir ve sunucu veya uygulama hizmeti kilitlenmeye neden olabilir.
Dosyada web.config örneği için bkz. Yapılandırma ile aspNetCore web.config yapılandırma.
Yığın boyutunu değiştirme
Yalnızca işlem içinde barındırma modeli kullanırken geçerlidir.
içinde bayt cinsinden ayarını kullanarak stackSize yönetilen yığın boyutunu web.config yapılandırma. 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ışında barındırma için geçerlidir.
ASP.NET Core Modülü arasında oluşturulan ve Kestrel HTTP protokolünü kullanan ara sunucu. Modül ile sunucu dışı bir konumdan gelen trafiği dinleme Kestrel riski yoktur.
Eşleştirme belirteci, tarafından alınan isteklerin IIS tarafından sunucuya alınarak başka bir kaynaktan gelmelerini Kestrel garanti etmek için kullanılır. Eşleştirme belirteci modül tarafından oluşturulur ve bir ortam değişkenine ( ASPNETCORE_TOKEN ) ayarlanır. Eşleştirme belirteci, her bir eşleştirilmiş istekte üst bilgi ( MS-ASPNETCORE-TOKEN ) olarak da ayarlanır. IIS Ara Yazılımı, eşleştirme belirteci üst bilgisi değerinin ortam değişkeni değeriyle eşleştirilmiş olduğunu doğrulamak için aldığı her isteği denetler. Belirteç değerleri eşleşmezse istek günlüğe kaydedilir ve reddedilir. Eşleştirme belirteci ortam değişkeni ve modül arasındaki trafiğe sunucunun dışında Kestrel bir konumdan erişilemez. Eşleştirme belirteci değerini bilmeden, saldırgan IIS Ara Yazılımında denetimi atlayan istekler gönderemeden istek gönderemeden.
ASP.NET Core IIS Paylaşılan Yapılandırması ile Modül
ASP.NET Core 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 olduğundan, yükleyici paylaşımda dosyada modül ayarlarını yapılandırmaya çalışırken erişim reddedildi applicationHost.config hatası verir.
IIS yüklemesi ile aynı makinede IIS Paylaşılan Yapılandırması kullanırken, ASP.NET Core Barındırma Paketi yükleyicisini OPT_NO_SHARED_CONFIG_CHECK parametresi olarak ayarlanmış şekilde 1 ç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ırakma.
- Yükleyiciyi çalıştırın.
- Güncelleştirilmiş dosyayı
applicationHost.configpaylaşı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 Core Modülünün sürümünü belirlemek için:
- Barındırma sisteminde, 'a
%windir%\System32\inetsrvgidin. - Dosyasını
aspnetcore.dllbulun. - 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 eder.
Modülün Barındırma Paketi yükleyicisi günlükleri üzerinde C:\Users\%UserName%\AppData\Local\Temp bulunur. Dosya olarak dd_DotNetCoreWinSvrHosting__{TIMESTAMP}_000_AspNetCoreModule_x64.log adlandırılmış.
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.configiisexpress.exe CLI:
%USERPROFILE%\Documents\IISExpress\config\applicationhost.config
Dosyalar, dosyasında aspnetcore aranarak applicationHost.config bulunabilir.
ASP.NET Core Modülü, IIS işlem hattına şu ikisine de takan yerel bir IIS modülüdür:
- IIS ASP.NET Core ( ) içinde işlem içi barındırma modeli olarak
w3wp.exeadlandırılan bir uygulama barındırın. - Web isteklerini, adlı ASP.NET Core çalıştıran bir arka Kestrel uç uygulamasına iletin( işlem dışında barındırma modeli).
Desteklenen Windows sürümleri:
- Windows 7 veya sonraki bir
- Windows Server 2008 R2 veya sonraki sürümü
İşlem sırasında barındırma sırasında, modül IIS için IIS HTTP Sunucusu () adlı bir işlem içinde sunucu uygulaması IISHttpServer kullanır.
İşlem dışında barındırma sırasında modül yalnızca ile Kestrel çalışır. Modül, ile birlikte HTTP.sys.
Barındırma modelleri
İşlem içinde barındırma modeli
Bir uygulamayı işlem içinde barındırma için yapılandırmak üzere özelliğini değeriyle uygulamanın proje dosyasına ekleyin (işlem dışında <AspNetCoreHostingModel> InProcess barındırma ile OutOfProcess ayarlanır):
<PropertyGroup>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
İşlem içinde barındırma modeli, uygulamanın hedefini ASP.NET Core uygulamalar için .NET Framework.
değeri <AspNetCoreHostingModel> büyük/büyük/büyük harfe duyarlı değildir, inprocess dolayısıyla geçerli outofprocess değerlerdir.
özelliği <AspNetCoreHostingModel> dosyada mevcut değilse varsayılan değer OutOfProcess olur.
İşlem içinde barındırıyorken aşağıdaki özellikler geçerlidir:
Sunucu yerine IIS HTTP Sunucusu (
IISHttpServer) Kestrel kullanılır. devam eden için CreateDefaultBuilder şunları UseIIS çağrıları:- 'i
IISHttpServerkaydetme. - ASP.NET Core Modülünün arkasında çalıştırıldığında sunucunun dinlemesi gereken bağlantı noktasını ve ASP.NET Core yapılandırma.
- Başlatma hatalarını yakalamak için ana bilgisayarı yapılandırma.
- 'i
requestTimeout özniteliği işlem içinde barındırma için geçerli değildir.
Uygulamalar arasında uygulama havuzu paylaşımı desteklenmiyor. Uygulama başına bir uygulama havuzu kullanın.
Uygulama Web Dağıtımı veya el ile dağıtımaapp_offline.htmdosyası yerleştirilirken, açık bir bağlantı varsa uygulama hemen kapatılamayabilirsiniz. Örneğin, bir websocket bağlantısı uygulamanın kapanmasını geciktirme olabilir.
Uygulamanın ve yüklü çalışma zamanının (x64 veya x86) mimarisi (bitlik) uygulama havuzunun mimarisiyle eşleşmesi gerekir.
İstemcinin bağlantısı kesildi algılandı. httpContext.RequestAborted iptal belirteci, istemcinin bağlantısı kesili olduğunda iptal edilir.
ASP.NET Core 2.2.1 veya önceki bir sürümde, uygulamanın dizini yerine IIS tarafından başlatan işlem çalışan dizinini döndürür (örneğin,w3wp.exeiçin GetCurrentDirectory C:\Windows\System32\inetsrv). **
Uygulamanın geçerli dizinini ayaran örnek kod için currentDirectoryHelpers sınıfına bakın. yöntemini
SetCurrentDirectoryçağırma. Uygulamanın GetCurrentDirectory dizinini sağlamak için sonraki çağrılar.İşlem içi barındırma AuthenticateAsync sırasında, bir kullanıcı başlatmak için dahili olarak çağrılmaz. Bu nedenle, IClaimsTransformation her kimlik doğrulamasının ardından talepleri dönüştürmek için kullanılan bir uygulama varsayılan olarak etkinleştirilmez. Talepleri bir uygulamayla dönüştürerek IClaimsTransformation kimlik doğrulama hizmetleri ekleme AddAuthentication çağrısında bulundurabilirsiniz:
public void ConfigureServices(IServiceCollection services) { services.AddTransient<IClaimsTransformation, ClaimsTransformer>(); services.AddAuthentication(IISServerDefaults.AuthenticationScheme); } public void Configure(IApplicationBuilder app) { app.UseAuthentication(); }
İşlem dışında barındırma modeli
Bir uygulamayı işlem dışında barındırma için yapılandırmak üzere proje dosyasında aşağıdaki yaklaşımlardan birini kullanın:
- özelliğini
<AspNetCoreHostingModel>belirtme.<AspNetCoreHostingModel>Özellik dosyada yoksa, varsayılan değer olurOutOfProcess. <AspNetCoreHostingModel>Özelliğin değerini olarak ayarlayınOutOfProcess(işlem içi barındırma ile ayarlanırInProcess):
<PropertyGroup>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
Değer büyük/küçük harfe duyarlıdır inprocess ve outofprocess geçerli değerlerdir.
Kestrel sunucu IIS HTTP sunucusu yerine kullanılır ( IISHttpServer ).
İşlem dışı için Createdefaultbuilder aşağıdakileri UseIISIntegration öğesine çağırır:
- ASP.NET Core modülünün arkasında çalışırken sunucunun dinlemesi gereken bağlantı noktasını ve temel yolu yapılandırın.
- Konağı, başlatma hatalarını yakalamak üzere yapılandırın.
Barındırma modeli değişiklikleri
Ayar, hostingModel web.config dosyasında değiştirilirse ( web.configile yapılandırma bölümünde açıklanan), modül IIS için çalışan işlemini geri dönüştü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şlem olarak çoğaltılır.
İşlem adı
Process.GetCurrentProcess().ProcessNameraporlar 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 Core modülüyle etkin ııs modülleri hakkında daha fazla bilgi edinmek için bkz ASP.NET Core ile IIS modülleri ..
ASP.NET Core modülü de şunları yapabilir:
- Çalışan işlem için ortam değişkenlerini ayarlayın.
- Başlatma sorunlarını gidermek için stdout çıkışını dosya depolama alanına kaydedin.
- Windows kimlik doğrulama belirteçlerini ilet.
ASP.NET Core modülünü yüklemek ve kullanmak
ASP.NET Core modülünün nasıl yükleneceğine ilişkin yönergeler için bkz. .net Core barındırma paketi 'ni yüklemek. ASP.NET Core modülü, .net 'in lts sürümleriyle ileri ve geriye dönük olarak uyumludur.
Yeni değişiklikler ve güvenlik danışmanları Duyurular reposlarında raporlandı. Duyurular, Etiket filtresi seçerek belirli bir sürümle sınır olabilir.
web.config ile yapılandırma
ASP.NET Core modülü, aspNetCore system.webServer sitenin web.config dosyasındaki düğümünün bölümüyle yapılandırılır.
aşağıdaki web.config dosyası çerçeveye bağlı bir dağıtım için yayımlanır ve ASP.NET Core modülünü site isteklerini işleyecek şekilde yapılandırı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 , kendinden bağımsız bir dağıtımiç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, false öğesi içinde belirtilen ayarların <location> uygulamanın bir alt dizininde bulunan uygulamalar tarafından devralınmadığını belirtmek için olarak ayarlanır.
Bir uygulama Azure App Servicedağıtıldığında, stdoutLogFile yol olarak ayarlanır \\?\%home%\LogFiles\stdout . 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 ASP.NET Core Windows konak konakları ..
AspNetCore öğesinin öznitelikleri
| Öznitelik | Açıklama | Varsayılan |
|---|---|---|
arguments |
İsteğe bağlı dize özniteliği. İçinde belirtilen yürütülebilirin bağımsız değişkenleri |
|
disableStartUpErrorPage |
İsteğe bağlı Boolean özniteliği. Doğru ise, 502,5-Işlem hatası sayfası bastırılır ve web.config yapılandırılan 502 durum kodu sayfası önceliklidir. |
false |
forwardWindowsAuthToken |
İsteğe bağlı Boolean özniteliği. True ise belirteç, istek başına ' MS-ASPNETCORE-WıNAUTHTOKEN ' üst bilgisi olarak% ASPNETCORE_PORT% üzerinde dinleme yapan alt işleme iletilir. Bu, istek başına bu belirteçte CloseHandle çağırma işleminin sorumluluğundadır. |
true |
hostingModel |
İsteğe bağlı dize özniteliği. Barındırma modelini işlem içi ( |
OutOfProcessoutofprocess |
processesPerApplication |
İsteğe bağlı tamsayı özniteliği. Ayarda belirtilen işlemin örnek sayısını belirtir †İşlem içi barındırma için, değer ile sınırlıdır Ayar |
Varsayılanını 1Min 1Biçimlendir 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 başlıyorsa |
|
rapidFailsPerMinute |
İsteğe bağlı tamsayı özniteliği. İçinde belirtilen işlemin İşlem içi barındırma ile desteklenmez. |
Varsayılanını 10Min 0Biçimlendir 100 |
requestTimeout |
İsteğe bağlı TimeSpan özniteliği. ASP.NET Core modülünün% ASPNETCORE_PORT% üzerinde dinleme işleminden yanıt beklediği süreyi belirtir. ASP.NET Core 2,1 veya üzeri sürümü ile birlikte gelen ASP.NET Core modülünün sürümlerinde, İşlem içi barındırma için uygulanmaz. İşlem içi barındırma için modül, uygulamanın isteği işlemesini bekler. Dizenin dakika ve saniye kesimleri için geçerli değerler 0-59 aralığındadır. Dakika veya saniye değerindeki 60 kullanımı, 500-iç sunucu hatasına neden olur. |
Varsayılanını 00:02:00Min 00:00:00Biçimlendir 360:00:00 |
shutdownTimeLimit |
İsteğe bağlı tamsayı özniteliği. Dosya algılandığında, modülün yürütülebilir dosyanın düzgün şekilde kapatılmasını beklediği saniye cinsinden süre |
Varsayılanını 10Min 0Biçimlendir 600 |
startupTimeLimit |
İsteğe bağlı tamsayı özniteliği. Modülün, bağlantı noktasında dinleme yapan bir işlemin başlamasını bekleyeceği saniye cinsinden süre. Bu süre sınırı aşılırsa, modül işlemi bu işlemden sonra da bir kez gider. İşlem içi barındırma sırasında: işlem yeniden başlatılmaz ve ayarı kullanılmaz İşlem dışı barındırma sırasında, modül yeni bir istek aldığında işlemi yeniden başlatmayı dener ve uygulamanın 0 (sıfır) değeri sonsuz bir zaman aşımı olarak kabul edilmez . |
Varsayılanını 120Min 0Biçimlendir 3600 |
stdoutLogEnabled |
İsteğe bağlı Boolean özniteliği. True ise, içinde belirtilen işlem için stdout ve stderr , |
false |
stdoutLogFile |
İsteğe bağlı dize özniteliği.
|
aspnetcore-stdout |
Ortam değişkenlerini ayarlama
Özniteliği içindeki işlem için ortam değişkenleri belirtilebilir processPath . <environmentVariable>Bir koleksiyon öğesinin alt öğesi ile bir ortam değişkeni belirtin <environmentVariables> . 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, bir uygulama özel durumu hata ayıklaması sırasında Geliştirici Özel Durum Sayfası'nın yüklenmeye zorlayıcısı için dosyada web.config bu değeri geçici olarak ayarlamaya zorlar. CONFIG_DIR , geliştiricinin, uygulamanın yapılandırma dosyasını yüklemeye ilişkin bir yol oluşturmak için başlangıçtaki değeri yazan kodu yazdığı kullanıcı tanımlı ortam değişkenine bir örnektir.
<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 ayarlamanın web.config alternatifi, özelliğini yayımlama <EnvironmentName> profiline (.pubxml) veya proje dosyasına eklemektir. Bu yaklaşım, proje web.config yayımlanırken ortamı ayarlar:
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
Uyarı
Ortam değişkenlerini yalnızca İnternet gibi güvenilmeyen ağların erişilemeyen hazırlama ve test ASPNETCORE_ENVIRONMENT Development sunucularında olarak ayarlayın.
app_offline.htm
Uygulamanın kök dizininde adı olan bir dosya algılanırsa, ASP.NET Core Modülü uygulamayı yetkisiz bir şekilde kapatmaya ve gelen istekleri işlemeyi app_offline.htm durdurmaya çalışır. Uygulama içinde tanımlanan saniye sayısından sonra hala shutdownTimeLimit çalışıyorsa, ASP.NET Core Modülü çalışan işlemi sonlar.
Dosya app_offline.htm mevcutken, ASP.NET Core modülünün içeriği geri göndererek isteklere yanıt app_offline.htm verir. Dosya app_offline.htm kaldırıldığı zaman, sonraki istek uygulamayı başlatır.
İşlem dışında barındırma modelini kullanırken, açık bir bağlantı varsa uygulama hemen kapatılamayabilirsiniz. Örneğin, bir websocket bağlantısı uygulamanın kapanmasını geciktirme olabilir.
Başlatma hatası sayfası
Hem işlem içinde hem de işlem dışında barındırma, uygulamayı başlatamazken özel hata sayfaları üretir.
ASP.NET Core Modülü işlem içinde veya işlem dışında istek işleyicisini bulamazsa, bir 500.0 - devam ediyor/İşlem Sırasında İşleyici Yük Hatası durum kodu sayfası görüntülenir.
ASP.NET Core Modülünün uygulamayı başlatamazsa işlem sırasında barındırma için 500.30 - Başlatma Hatası durum kodu sayfası görüntülenir.
ASP.NET Core 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ını dinleyemezse işlem dışında barındırma için 502.5 - İşlem Hatası durum kodu sayfası görüntülenir.
Bu sayfayı gizleme 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 Core modülü, öğenin ve öznitelikleri ayarlanmışsa stdout ve stderr stdoutLogEnabled stdoutLogFile konsol aspNetCore çıkışını diske yeniden yönlendiriyor. Günlük dosyası stdoutLogFile oluşturulduğunda, yol içinde herhangi bir klasör modül tarafından oluşturulur. Uygulama havuzunun, günlüklerin yazıldığı konuma yazma erişimi olması gerekir (yer tutucu uygulama havuzu adı olan yazma izni IIS AppPool\{APP POOL NAME} {APP POOL NAME} sağlamak için kullanın).
İşlem geri dönüştürme/yeniden başlatma oluşmadıkça günlükler döndürülemez. Günlüklerin tükettiği disk alanını sınırlamak barındırma sorumluluğundadır.
stdout günlüğünün kullanılması yalnızca IIS'de barındırırken veya Visual Studio ile IISiçin geliştirme zamanı desteğini kullanırken uygulama başlatma sorunlarını gidermek için önerilir; yerel olarak hata ayıklarken ve uygulamayı IIS Express.
Stdout günlüğünü genel uygulama günlüğü amaçlarıyla kullanmayın. Bir uygulamanın günlük kaydı ASP.NET Core 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 otomatik olarak bir zaman damgası ve dosya uzantısı eklenir. Günlük dosyası adı, yolun son kesimine (genellikle ) alt çizgiyle sınırlandırılmış zaman damgası, işlem kimliği ve dosya uzantısı .log ( ) ek adıyla stdoutLogFile stdout oluşur. Yol ile stdoutLogFile stdout biterse, 5/2/2018 tarihinde 19:42:32'de oluşturulan 1934 PID'i olan bir uygulamanın günlüğü dosya adına sahip stdout_20180205194132_1934.log olur.
False stdoutLogEnabled ise, uygulama başlatma sırasında oluşan hatalar yakalanır ve 30 KB'a kadar olay günlüğüne yayımlanır. Başlatmadan sonra tüm ek günlükler atılır.
Aşağıdaki örnek aspNetCore öğesi göreli yolda stdout günlüğünü yapılandırıyor. .\log\ Uygulama havuzu kullanıcı kimliğinin sağlanan yola yazma izni olduğunu onaylayın.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
</aspNetCore>
Bir uygulamayı dağıtım Azure App Service Web SDK'sı değeri stdoutLogFile olarak \\?\%home%\LogFiles\stdout ayarlar. Ortam %home değişkeni, uygulama tarafından barındırılan uygulamalar için önceden Azure App Service.
Yol biçimleri hakkında daha fazla bilgi için bkz. Sistemlerde dosya Windows biçimleri.
Gelişmiş tanılama günlükleri
ASP.NET Core Modülü, gelişmiş tanılama günlükleri sağlamak için yapılandırılabilir. öğesini <handlerSettings> <aspNetCore> öğesinde öğesine web.config ekleyin. olarak debugLevel TRACE ayarı, tanılama bilgilerine daha yüksek bir uygunluk 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ğerine sağlanan yolda klasörler (önceki örnekte) modül tarafından otomatik olarak oluşturulmaz ve <handlerSetting> logs dağıtımda önceden mevcut olması gerekir. Uygulama havuzunun, günlüklerin yazıldığı konuma yazma erişimi olması gerekir (yer tutucu uygulama havuzu adı olan yazma izni IIS AppPool\{APP POOL NAME} {APP POOL NAME} sağlamak için kullanın).
Hata ayıklama düzeyi ( debugLevel ) değerleri hem düzeyi hem de konumu içerebilir.
Düzeyler (en az ayrıntılıdan en fazla düzeye doğru sıra):
- HATA
- UYARI
- BİLGİ
- TRACE
Konumlar (birden çok konuma izin verilir):
- KONSOL
- EVENTLOG
- DOSYA
İşleyici ayarları ortam değişkenleri aracılığıyla da sağlanmalıdır:
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 dağıtımda hata ayıklama günlüğünü gerekenden daha uzun süre etkin bırakın. Günlüğün boyutu sınırlı değildir. Hata ayıklama günlüğünün etkin bırakarak kullanılabilir disk alanı tüketilebilir ve sunucu veya uygulama hizmeti kilitlenmeye neden olabilir.
Dosyada web.config örneği için bkz. Yapılandırma aspNetCore ile web.config yapılandırma.
Ara sunucu yapılandırması HTTP protokolü ve eşleştirme belirteci kullanır
Yalnızca işlem dışında barındırma için geçerlidir.
ASP.NET Core Modülü arasında oluşturulan ve Kestrel HTTP protokolünü kullanan ara sunucu. Modül ile sunucu dışı bir konumdan gelen trafiği dinleme Kestrel riski yoktur.
Eşleştirme belirteci, tarafından alınan isteklerin IIS tarafından sunucuya alınarak başka bir kaynaktan Kestrel gelmelerini garanti etmek için kullanılır. Eşleştirme belirteci modül tarafından oluşturulur ve bir ortam değişkenine ( ASPNETCORE_TOKEN ) ayarlanır. Eşleştirme belirteci, her bir eşleştirilmiş istekte üst bilgi ( MS-ASPNETCORE-TOKEN ) olarak da ayarlanır. IIS Ara Yazılımı, eşleştirme belirteci üst bilgisi değerinin ortam değişkeni değeriyle eşleştirilmiş olduğunu doğrulamak için aldığı her isteği denetler. Belirteç değerleri eşleşmezse istek günlüğe kaydedilir ve reddedilir. Eşleştirme belirteci ortam değişkeni ve modül arasındaki trafiğe sunucunun dışında Kestrel bir konumdan erişilemez. Eşleştirme belirteci değerini bilmeden, saldırgan IIS Ara Yazılımında denetimi atlayan istekler gönderemeden istek gönderemeden.
ASP.NET Core IIS Paylaşılan Yapılandırması ile Modül
ASP.NET Core Modülü yükleyicisi hesabın ayrıcalıklarıyla TrustedInstaller ç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 iznine sahip olması nedeniyle yükleyici, paylaşımda dosyada modül ayarlarını yapılandırmaya çalışırken erişim reddedildi applicationHost.config hatası verir.
IIS yüklemesi ile aynı makinede IIS Paylaşılan Yapılandırması kullanırken, ASP.NET Core paketi yükleyicisini parametresi olarak OPT_NO_SHARED_CONFIG_CHECK ayarlanmış şekilde 1 ç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ırakma.
- Yükleyiciyi çalıştırın.
- Güncelleştirilmiş dosyayı
applicationHost.configpaylaşı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 Core Modülünün sürümünü belirlemek için:
- Barındırma sisteminde, 'a
%windir%\System32\inetsrvgidin. - Dosyasını
aspnetcore.dllbulun. - 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 eder.
Modülün Barındırma Paketi yükleyicisi günlükleri üzerinde C:\\Users\\%UserName%\\AppData\\Local\\Temp bulunur. Dosya olarak adlandırılmış, dd_DotNetCoreWinSvrHosting__\{TIMESTAMP}_000_AspNetCoreModule_x64.log burada yer tutucu zaman {TIMESTAMP} damgasıdı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.configiisexpress.exe CLı
%USERPROFILE%\Documents\IISExpress\config\applicationhost.config
Dosyalar dosyada arayarak bulunabilir aspnetcore applicationHost.config .
ASP.NET Core modülü, web isteklerini arka uca ASP.NET Core uygulamalarına iletmek için ııs ardışık düzenine takılan yerel bir ııs modülüdür.
desteklenen Windows sürümleri:
- Windows 7 veya üzeri
- Windows Server 2008 R2 veya sonraki sürümü
Modül yalnızca ile birlikte kullanılabilir Kestrel . Modül HTTP.sysuyumsuz.
ASP.NET Core uygulamalar ııs çalışan işleminden ayrı bir işlemde çalıştığından, modül işlem yönetimini de işler. modül, ilk istek ulaştığında ASP.NET Core app işlemini başlatır ve kilitlenirse uygulamayı yeniden başlatır. bu aslında, Windows işlem etkinleştirme hizmeti (WAS)tarafından yönetilen ve ııs 'de işlem içi çalışan ASP.NET 4. x uygulamaları ile görüldüğü aynı davranıştır.
aşağıdaki diyagramda ııs, ASP.NET Core modülü ve bir uygulama arasındaki ilişki gösterilmektedir:

İstekler Web 'den çekirdek modu HTTP.sys sürücüsüne ulaşır. Sürücü, istekleri Web sitesinin yapılandırılmış bağlantı noktasında IIS 'ye yönlendirir, genellikle 80 (HTTP) veya 443 (HTTPS). Modül, Kestrel bağlantı noktası 80 veya 443 olmayan uygulamalar için istekleri rastgele bir bağlantı noktası üzerine iletir.
Modül, başlangıç sırasında bir ortam değişkeni aracılığıyla bağlantı noktasını belirtir ve IIS tümleştirme ara yazılımı sunucuyu dinleyecek şekilde yapılandırır http://localhost:{port} . Ek denetimler gerçekleştirilir ve modülünden kaynaklanmayan istekler reddedilir. Modül HTTPS iletmeyi desteklemez, bu nedenle istekler HTTPS üzerinden IIS tarafından alınsa bile HTTP üzerinden iletilir.
Kestrelisteği modülden aldıktan sonra, istek ASP.NET Core ara yazılım ardışık düzenine gönderilir. Ara yazılım ardışık düzeni isteği işler ve HttpContext uygulamanın mantığına bir örnek olarak geçirir. IIS tümleştirmesi tarafından eklenen ara yazılımlar, isteği iletmek için, düzen, uzak IP ve pathbase 'i hesaba göre güncelleştirir Kestrel . Uygulamanın yanıtı IIS 'e geri geçirilir ve bu, isteği başlatan HTTP istemcisine geri gönderilir.
Windows kimlik doğrulaması gibi birçok yerel modül etkin kalır. ASP.NET Core modülüyle etkin ııs modülleri hakkında daha fazla bilgi edinmek için bkz ASP.NET Core ile IIS modülleri ..
ASP.NET Core modülü de şunları yapabilir:
- Çalışan işlem için ortam değişkenlerini ayarlayın.
- Başlatma sorunlarını gidermek için stdout çıkışını dosya depolama alanına kaydedin.
- Windows kimlik doğrulama belirteçlerini ilet.
ASP.NET Core modülünü yüklemek ve kullanmak
ASP.NET Core modülünün nasıl yükleneceğine ilişkin yönergeler için bkz. .net Core barındırma paketi 'ni yüklemek.
web.config ile yapılandırma
ASP.NET Core modülü, aspNetCore system.webServer sitenin web.config dosyasındaki düğümünün bölümüyle yapılandırılır.
aşağıdaki web.config dosyası çerçeveye bağlı bir dağıtım için yayımlanır ve ASP.NET Core modülünü site isteklerini işleyecek şekilde yapılandırı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 , kendinden bağımsız bir dağıtımiç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 App Servicedağıtıldığında, stdoutLogFile yol olarak ayarlanır \\?\%home%\LogFiles\stdout . 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 ASP.NET Core Windows konak konakları ..
AspNetCore öğesinin öznitelikleri
| Öznitelik | Açıklama | Varsayılan |
|---|---|---|
arguments |
İsteğe bağlı dize özniteliği. ProcessPath içinde belirtilen yürütülebilir dosya için bağımsız değişkenler. |
|
disableStartUpErrorPage |
İsteğe bağlı Boolean özniteliği. Doğru ise, 502,5-Işlem hatası sayfası bastırılır ve web.config yapılandırılan 502 durum kodu sayfası önceliklidir. |
false |
forwardWindowsAuthToken |
İsteğe bağlı Boolean özniteliği. True ise belirteç, istek başına ' MS-ASPNETCORE-WıNAUTHTOKEN ' üst bilgisi olarak% ASPNETCORE_PORT% üzerinde dinleme yapan alt işleme iletilir. Bu, istek başına bu belirteçte CloseHandle çağırma işleminin sorumluluğundadır. |
true |
processesPerApplication |
İsteğe bağlı tamsayı özniteliği. ProcessPath ayarında belirtilen işlemin örnek sayısını, uygulama başına bir şekilde işleyecek şekilde belirtir. Ayar |
Varsayılanını 1Min 1Biçimlendir 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 başlıyorsa |
|
rapidFailsPerMinute |
İsteğe bağlı tamsayı özniteliği. ProcessPath içinde belirtilen işleme dakika başına kilitlenme için izin verilen sayıyı belirtir. Bu sınır aşılırsa modül, dakika geri kalanı için işlemi başlatmayı durduruyor. |
Varsayılanını 10Min 0Biçimlendir 100 |
requestTimeout |
İsteğe bağlı TimeSpan özniteliği. ASP.NET Core modülünün% ASPNETCORE_PORT% üzerinde dinleme işleminden yanıt beklediği süreyi belirtir. ASP.NET Core 2,1 veya üzeri sürümü ile birlikte gelen ASP.NET Core modülünün sürümlerinde, |
Varsayılanını 00:02:00Min 00:00:00Biçimlendir 360:00:00 |
shutdownTimeLimit |
İsteğe bağlı tamsayı özniteliği. app_offline.htm dosyası algılandığında, modülün yürütülebilir dosyanın düzgün şekilde kapatılmasını beklediği saniye cinsinden süre. |
Varsayılanını 10Min 0Biçimlendir 600 |
startupTimeLimit |
İsteğe bağlı tamsayı özniteliği. Modülün, bağlantı noktasında dinleme yapan bir işlemin başlamasını bekleyeceği saniye cinsinden süre. Bu süre sınırı aşılırsa, modül işlemi bu işlemden sonra da bir kez gider. Modül, yeni bir istek aldığında işlemi yeniden başlatmayı dener ve uygulamanın son geçen dakikada rapidFailsPerMinute kez başlayamadığı sürece sonraki gelen isteklerde işlemi yeniden başlatmayı dener. 0 (sıfır) değeri sonsuz bir zaman aşımı olarak kabul edilmez . |
Varsayılanını 120Min 0Biçimlendir 3600 |
stdoutLogEnabled |
İsteğe bağlı Boolean özniteliği. True ise, processPath içinde belirtilen işlem için stdout ve stderr , stdoutLogFile içinde belirtilen dosyaya yeniden yönlendirilir. |
false |
stdoutLogFile |
İsteğe bağlı dize özniteliği. ProcessPath içinde belirtilen işlemden stdout ve stderr 'in günlüğe kaydedildiği göreli veya mutlak dosya yolunu belirtir. Göreli yollar, sitenin köküne göredir. İle başlayan tüm |
aspnetcore-stdout |
Ortam değişkenlerini ayarlama
Özniteliği içindeki işlem için ortam değişkenleri belirtilebilir processPath . <environmentVariable>Bir koleksiyon öğesinin alt öğesi ile bir ortam değişkeni belirtin <environmentVariables> .
Uyarı
Bu bölümde ayarlanmış ortam değişkenleri, aynı adla ayarlanmış sistem ortam değişkenleriyle çakışıyor. Ortam değişkeni hem web.config dosyasında hem de Windows'da sistem düzeyinde ayarlanırsa, web.config dosyasındaki değer sistem ortam değişkeni değerine eklenir (örneğin, ), uygulamanın başlamasını ASPNETCORE_ENVIRONMENT: Development;Development önler.
Aşağıdaki örnek iki ortam değişkeni ayarlar. ASPNETCORE_ENVIRONMENT uygulamanın ortamını olarak Development yapılandırıyor. Bir geliştirici, uygulama özel durumlarında hata ayıklarken Geliştirici Özel Durum web.config'ı yüklenmeye zorlamak için bu değeri geçici olarakweb.configdosyasından ayarlamaya zorlar. CONFIG_DIR , geliştiricinin, uygulamanın yapılandırma dosyasını yüklemeye ilişkin bir yol oluşturmak için başlangıçtaki değeri yazan kodu yazdığı kullanıcı tanımlı ortam değişkenine bir örnektir.
<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şkenlerini yalnızca İnternet gibi güvenilmeyen ağların erişilemeyen hazırlama ve test ASPNETCORE_ENVIRONMENT Development sunucularında olarak ayarlayın.
app_offline.htm
Uygulamanın kök dizinindeapp_offline.htm bir dosya algılanırsa, ASP.NET Core Modülü uygulamayı yetkisiz bir şekilde kapatmaya ve gelen istekleri işlemeyi durdurmaya çalışır. Uygulama içinde tanımlanan saniye sayısından sonra hala shutdownTimeLimit çalışıyorsa, ASP.NET Core Modülü çalışan işlemi sonlar.
app_offline.htm dosyası mevcutken ASP.NET Core Modülü, ASP.NET Core dosyasının içeriğini geri göndererekapp_offline.htm verir. Uygulama app_offline.htm kaldırıldığı zaman, sonraki istek uygulamayı başlatır.
Başlatma hatası sayfası
ASP.NET Core 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ını dinleyemezse, 502.5 - İşlem Hatası durum kodu sayfası görüntülenir. Bu sayfayı gizleme 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 Core Modülü, öğenin ve öznitelikleri ayarlanmışsa stdout ve stderr stdoutLogEnabled stdoutLogFile konsol aspNetCore çıkışını diske yeniden yönlendiriyor. Günlük dosyası stdoutLogFile oluşturulduğunda, yol içinde herhangi bir klasör modül tarafından oluşturulur. Uygulama havuzunun, günlüklerin yazıldığı konuma yazma erişimi olması gerekir (yazma izni IIS AppPool\<app_pool_name> sağlamak için kullanın).
İşlem geri dönüştürme/yeniden başlatma oluşmadıkça günlükler döndürülemez. Günlüklerin tükettiği disk alanını sınırlamak barındırma sorumluluğundadır.
stdout günlüğünün kullanılması yalnızca IIS'de barındırırken veya Visual Studio ile IISiçin geliştirme zamanı desteğini kullanırken uygulama başlatma sorunlarını gidermek için önerilir; yerel olarak hata ayıklarken ve uygulamayı IIS Express.
Stdout günlüğünü genel uygulama günlüğü amaçlarıyla kullanmayın. Bir uygulamanın günlük kaydı ASP.NET Core 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 otomatik olarak bir zaman damgası ve dosya uzantısı eklenir. Günlük dosyası adı, yolun son kesimine stdoutLogFile (genellikle stdout) alt çizgiyle sınırlandırılmış zaman damgası, işlem kimliği ve dosya uzantısı ( .log ) ek adıyla oluşur. Yol stdoutLogFile stdout ile sona ererse, 5/2/2018 tarihinde 19:42:32 tarihinde oluşturulan 1934 PID'i olan bir uygulamanın günlüğü stdout_20180205194132_1934.log dosya adına sahip olur.
Aşağıdaki örnek aspNetCore öğesi göreli yolda stdout günlüğünü yapılandırıyor. .\log\ AppPool kullanıcı kimliğinin sağlanan yola yazma izni olduğunu onaylayın.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout">
</aspNetCore>
Bir uygulamayı dağıtım Azure App Service Web SDK'sı değeri stdoutLogFile olarak \\?\%home%\LogFiles\stdout ayarlar. Ortam %home değişkeni, uygulama tarafından barındırılan uygulamalar için önceden Azure App Service.
Günlük filtresi kuralları oluşturmak için günlük kaydı belgelerinin Koda günlük filtresi kuralları ASP.NET Core bakın.
Yol biçimleri hakkında daha fazla bilgi için bkz. Sistemlerde dosya Windows biçimleri.
Ara sunucu yapılandırması HTTP protokolü ve eşleştirme belirteci kullanır
ASP.NET Core Modülü arasında oluşturulan ve Kestrel HTTP protokolünü kullanan ara sunucu. Modül ile sunucu dışı bir konumdan gelen trafiği dinleme Kestrel riski yoktur.
Eşleştirme belirteci, tarafından alınan isteklerin IIS tarafından sunucuya alınarak başka bir kaynaktan gelmelerini Kestrel garanti etmek için kullanılır. Eşleştirme belirteci modül tarafından oluşturulur ve bir ortam değişkenine ( ASPNETCORE_TOKEN ) ayarlanır. Eşleştirme belirteci, her bir eşleştirilmiş istekte üst bilgi ( MS-ASPNETCORE-TOKEN ) olarak da ayarlanır. IIS Ara Yazılımı, eşleştirme belirteci üst bilgisi değerinin ortam değişkeni değeriyle eşleştirilmiş olduğunu doğrulamak için aldığı her isteği denetler. Belirteç değerleri eşleşmezse istek günlüğe kaydedilir ve reddedilir. Eşleştirme belirteci ortam değişkeni ve modül arasındaki trafiğe sunucunun dışında Kestrel bir konumdan erişilemez. Eşleştirme belirteci değerini bilmeden, saldırgan IIS Ara Yazılımında denetimi atlayan istekler gönderemeden istek gönderemeden.
ASP.NET Core IIS Paylaşılan Yapılandırması ile Modül
ASP.NET Core 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 iznine sahip olması nedeniyle, yükleyici paylaşımdaapplicationHost.config dosyasında modül ayarlarını yapılandırmaya çalışırken erişim reddedildi hatası verir.
IIS Paylaşılan Yapılandırması kullanırken şu adımları izleyin:
- IIS Paylaşılan Yapılandırması'nı devre dışı bırakma.
- Yükleyiciyi çalıştırın.
- Güncelleştirilmiş applicationHost.config paylaşımına 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 Core Modülünün sürümünü belirlemek için:
- Barındırma sisteminde %windir%\System32\inetsrv dizinine gidin.
- aspnetcore.dll 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 eder.
Modülün Barındırma Paketi yükleyici günlükleri C: Kullanıcılar \ \ %UserName% \ AppData \ Local Temp sayfasında \ bulunur. Dosya, dd_DotNetCoreWinSvrHosting__ <timestamp> _000_AspNetCoreModule_x64.log olarak adlandırılmış.
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.configdosyasında aspnetcore için arama applicationHost.configbulunabilir.
Ek kaynaklar
- IIS ASP.NET Core Windows konak konakları
- ASP.NET Core uygulamalarını Azure App Service dağıtma
- ASP.NET Core 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 ile IIS modülleri