Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
Ez nem a cikk legújabb verziója. Az aktuális kiadásról a cikk .NET 10-es verziójában olvashat.
Figyelmeztetés
A ASP.NET Core ezen verziója már nem támogatott. További információt a .NET és a .NET Core támogatási szabályzatában talál. A jelen cikk .NET 9-es verzióját lásd az aktuális kiadásért .
A ASP.NET core modul (ANCM) egy natív IIS-modul, amely az IIS-folyamathoz csatlakozik, lehetővé téve ASP.NET Core-alkalmazások számára az IIS használatát. Futtassa ASP.NET Core-alkalmazásokat az IIS-vel az alábbiak szerint:
- Egy ASP.NET Core-alkalmazás üzemeltetése az IIS feldolgozói folyamatán belül (
w3wp.exea folyamaton belüli üzemeltetési modellnek hívva). - Webkérelmek továbbítása a kiszolgálót futtató Kestrel háttérrendszerbeli ASP.NET Core-alkalmazásba, amely a folyamaton kívüli üzemeltetési modell.
Az egyes üzemeltetési modellek között kompromisszumok vannak. Alapértelmezés szerint a folyamaton belüli üzemeltetési modell a jobb teljesítmény és a diagnosztika miatt van használatban.
További információkért és konfigurációs útmutatásért tekintse meg az alábbi témaköröket:
ASP.NET Core Modul (ANCM) telepítése
A ASP.NET Core Modul (ANCM) a .NET Core-futtatókörnyezettel van telepítve a .NET Core-csomagból. A ASP.NET core modul előre és hátra kompatibilis a .NET támogatott kiadásaival.
A jelentős változásokat és biztonsági figyelmeztetéseket a közlemények adattárában jelentjük. A hirdetmények egy címkeszűrő kiválasztásával egy adott verzióra korlátozhatók.
Töltse le a telepítőt az alábbi hivatkozással:
A .NET Core hosting csomag jelenlegi telepítője (közvetlen letöltés)
További információ, beleértve a modul egy korábbi verziójának telepítését, lásd: Hosting Bundle.
Az ASP.NET Core-alkalmazások IIS-kiszolgálón való közzétételéről szóló oktatóanyagért lásd: ASP.NET Core-alkalmazás közzététele az IIS-ben.
Az ASP.NET Core modul (ANCM) egy natív IIS-modul, amely az IIS csővezetékhez a következőhöz csatlakozik:
- Egy ASP.NET Core-alkalmazás üzemeltetése az IIS munkavégző folyamatán (
w3wp.exea folyamaton belüli üzemeltetési modellen belül). - Webkérelmek továbbítása a kiszolgálót futtatóKestrel háttérrendszerbeli ASP.NET Core-alkalmazásba, amely a folyamaton kívüli üzemeltetési modell.
Támogatott Windows-verziók:
- Windows 7 vagy újabb
- Windows Server 2012 R2 vagy újabb
A folyamaton belüli üzemeltetés során a modul egy folyamaton belüli kiszolgáló-implementációt használ az IIS-hez, az úgynevezett IIS HTTP Servert (IISHttpServer).
A folyamaton kívüli üzemeltetés esetén a modul csak a következővel Kestrelműködik: . A modul nem működik HTTP.sys.
Üzemeltetési modellek
Folyamaton belüli üzemeltetési modell
Az ASP.NET Core-alkalmazások alapértelmezés szerint a folyamaton belüli üzemeltetési modellt használják.
A folyamaton belüli üzemeltetésre a következő jellemzők vonatkoznak:
Az IIS HTTP-kiszolgáló (
IISHttpServer) használatos Kestrel helyett. A folyamatban lévő CreateDefaultBuilder a következő műveletet hívja meg: UseIIS- Regisztrálja a
IISHttpServer. - Konfigurálja azt a port- és alapelérési utat, amelyen a kiszolgálónak figyelnie kell, amikor a ASP.NET Core-modul mögött fut.
- Konfigurálja a hostot az indítási hibák rögzítésére.
- Regisztrálja a
A requestTimeout attribútum nem vonatkozik a folyamatban lévő üzemeltetésre.
Az alkalmazáskészletek alkalmazások közötti megosztása nem támogatott. Alkalmazásonként egy alkalmazáskészletet használhat.
Ha webtelepítést használ, vagy manuálisan helyez el egy
app_offline.htmfájlt az üzembe helyezésben, előfordulhat, hogy az alkalmazás nem áll le azonnal, ha van nyitott kapcsolat. Egy WebSocket-kapcsolat például késleltetheti az alkalmazás leállítását.Az alkalmazás architektúrájának (bititásának) és a telepített futtatókörnyezetnek (x64 vagy x86) meg kell egyeznie az alkalmazáskészlet architektúrájának.
A rendszer észleli az ügyfél kapcsolatának megszakadását. A
HttpContext.RequestAbortedlemondási token az ügyfél leválasztásakor törlődik.Az ASP.NET Core 2.2.1 vagy korábbi verzióiban a GetCurrentDirectory helyett az IIS által indított folyamat kezelő könyvtárát adja vissza, nem pedig az alkalmazás könyvtárát (például
C:\Windows\System32\inetsrvaw3wp.exeesetén).Az alkalmazás aktuális könyvtárát beállító mintakódért tekintse meg az osztályt
CurrentDirectoryHelpers. Hívja meg aSetCurrentDirectorymetódust. További hívások az alkalmazás címtárának megadásához GetCurrentDirectory .Folyamatba beágyazott üzemeltetés esetén a rendszer nem hívja meg AuthenticateAsync belsőleg a felhasználó inicializálásához. Ezért egy IClaimsTransformation implementáció, amelyet a jogcímek minden hitelesítés utáni átalakítására használnak, alapértelmezés szerint nincs aktiválva. A követeléseket implementációval történő IClaimsTransformation átalakításakor hívja meg AddAuthentication a hitelesítési szolgáltatások hozzáadásához.
public void ConfigureServices(IServiceCollection services) { services.AddTransient<IClaimsTransformation, ClaimsTransformer>(); services.AddAuthentication(IISServerDefaults.AuthenticationScheme); } public void Configure(IApplicationBuilder app) { app.UseAuthentication(); }- A webcsomagok (egyfájlos) telepítések nem támogatottak.
Folyamaton kívüli üzemeltetési modell
Ha egy alkalmazást folyamaton kívüli üzemeltetésre szeretne konfigurálni, állítsa be a <AspNetCoreHostingModel> tulajdonság OutOfProcess értékét a projektfájlban (.csproj):
<PropertyGroup>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
A folyamaton belüli üzemeltetés az alapértelmezett értékkel van beállítva InProcess.
<AspNetCoreHostingModel> értéke nem érzékeny a kis- és nagybetűkre, így a inprocess és outofprocess érvényes értékek.
Kestrel kiszolgálót használ az IIS HTTP-kiszolgáló (IISHttpServer) helyett.
A folyamaton kívüli CreateDefaultBuilder hívások UseIISIntegration-t hívják meg a következő cél érdekében:
- Konfigurálja azt a port- és alapelérési utat, amelyen a kiszolgálónak figyelnie kell, amikor a ASP.NET Core-modul mögött fut.
- Konfigurálja a hostot az indítási hibák rögzítésére.
Üzemeltetési modell változásai
Ha a hostingModel beállítás módosul a web.config fájlban (ezt a Konfiguráció című web.config szakaszban ismertetjük), a modul újrahasznosítja az IIS feldolgozói folyamatát.
Az IIS Express esetében a modul nem hasznosítja újra a feldolgozói folyamatot, hanem az aktuális IIS Express-folyamat kecses leállítását indítja el. Az alkalmazás következő kérése egy új IIS Express-folyamatot hoz létre.
Folyamat neve
Process.GetCurrentProcess().ProcessName jelentések w3wp (folyamatban lévő) vagy / (folyamaton kívüli).iisexpressdotnet
Számos natív modul, például a Windows-hitelesítés, aktív marad. A ASP.NET Core modullal aktív IIS-modulokkal kapcsolatos további információkért tekintse meg a ASP.NET Core-val rendelkező IIS-modulokat.
A ASP.NET core modul a következőket is lehetővé teszi:
- Munkafolyamat környezeti változóinak beállítása.
- Az indítási problémák elhárítása érdekében naplózza a fájltárolóba irányuló stdout kimenetet.
- Windows-hitelesítési jogkivonatok továbbítása.
A ASP.NET Core Modul (ANCM) telepítése és használata
A ASP.NET Core modul telepítésével kapcsolatos utasításokért lásd : .NET Core Hosting Bundle telepítése. A ASP.NET core modul előre és hátra kompatibilis a .NET támogatott kiadásaival.
A jelentős változásokat és biztonsági figyelmeztetéseket a közlemények adattárában jelentjük. A hirdetmények egy címkeszűrő kiválasztásával egy adott verzióra korlátozhatók.
A web.config fájl konfigurálása
Az ASP.NET Core modul a web.config fájl aspNetCore csomópontjának system.webServer szakaszával van konfigurálva.
A rendszer a következő web.config fájlt teszi közzé egy keretrendszerfüggő üzembe helyezéshez , és konfigurálja a ASP.NET core modult a helykérések kezeléséhez:
<?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 következő web.config egy önálló üzembe helyezéshez van közzétéve.
<?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>
A InheritInChildApplications tulajdonság úgy van beállítva false , hogy jelezze, hogy az <location> elemben megadott beállításokat nem öröklik az alkalmazás alkönyvtárában található alkalmazások.
Amikor egy alkalmazást üzembe helyez az Azure App Service-ben, az stdoutLogFile elérési út a következőre \\?\%home%\LogFiles\stdoutvan állítva: . Az elérési út menti az stdout-naplókat a LogFiles mappába, amely a szolgáltatás által automatikusan létrehozott hely.
Az IIS-alalkalmazás konfigurálással kapcsolatos információkért lásd: Gazdagép ASP.NET Core Windows rendszeren IIS-vel.
Az aspNetCore elem attribútumai
| Attribute | Description | Alapértelmezett |
|---|---|---|
arguments |
Nem kötelező karakterlánc attribútum. A processPathban megadott végrehajtható argumentumok. |
|
disableStartUpErrorPage |
Nem kötelező logikai attribútum. Ha igaz, a rendszer letiltja az 502.5 – Folyamathiba lapot, és a web.config konfigurált 502-s állapotkódlap elsőbbséget élvez. |
false |
forwardWindowsAuthToken |
Nem kötelező logikai attribútum. Ha igaz, a jogkivonatot továbbítják a |
true |
hostingModel |
Nem kötelező karakterlánc attribútum. Az üzemeltetési modellt folyamaton belüliként ( |
InProcessinprocess |
processesPerApplication |
Nem kötelező egész szám attribútum. Az alkalmazásonként felpöröghető folyamatpéldányok számát adja meg a processPath beállításban. †Folyamatközi üzemeltetés esetén az érték korlátozott A beállítás |
Alapértelmezett: 1Min: 1Max: 100† |
processPath |
Kötelező karakterlánc attribútum. A HTTP-kéréseket figyelő folyamatot megnyitó végrehajtható fájl elérési útja. A relatív elérési utak támogatottak. Ha az elérési út a kezdőbetűvel |
|
rapidFailsPerMinute |
Nem kötelező egész szám attribútum. Megadja, hogy a processPathban megadott folyamat hányszor omlhat össze percenként. Ha túllépi ezt a korlátot, a modul a perc hátralévő részében leállítja a folyamatot. A folyamaton belüli üzemeltetés nem támogatott. |
Alapértelmezett: 10Min: 0Max: 100 |
requestTimeout |
Nem kötelező időbélyeg attribútum. Azt az időtartamot adja meg, amíg a ASP.NET core modul a %ASPNETCORE_PORT%figyelési folyamat válaszára vár. Az ASP.NET Core modulnak az ASP.NET Core 2.1-es vagy újabb verzióival szállított változataiban a A folyamaton belüli üzemeltetésre nem vonatkozik. A folyamatban lévő üzemeltetés esetén a modul megvárja, amíg az alkalmazás feldolgozni fogja a kérést. A karakterlánc percek és másodpercek érvényes értékei a 0–59 tartományba tartoznak. A 60 perc vagy másodperc értékének használata 500 belső kiszolgálóhibát eredményez. |
Alapértelmezett: 00:02:00Min: 00:00:00Max: 360:00:00 |
shutdownTimeLimit |
Nem kötelező egész szám attribútum. Az időtartam másodpercben, ameddig a modul várja a végrehajtható fájl rendben való leállítását a |
Alapértelmezett: 10Min: 0Max: 600 |
startupTimeLimit |
Nem kötelező egész szám attribútum. A modul az időtartamot másodpercben méri, amely alatt megvárja, hogy a végrehajtható fájl egy, a porton hallgató folyamatot indítson. Ha túllépi ezt az időkorlátot, a modul leáll a folyamaton. A folyamat belüli üzemeltetés esetén: A folyamat nem indul újra, és nem használja a rapidFailsPerMinute beállítást. Folyamaton kívüli üzemeltetés esetén: A modul megkísérli újraindítani a folyamatot, amikor új kérést kap, és továbbra is megpróbálja újraindítani a folyamatot a következő bejövő kérelmeken, kivéve, ha az alkalmazás nem indítja el a gyorsFailsPerMinute hányszor az utolsó gördülő percben. A 0 (nulla) érték nem számít végtelen időtúllépésnek. |
Alapértelmezett: 120Min: 0Max: 3600 |
stdoutLogEnabled |
Nem kötelező logikai attribútum. Ha igaz, a processPath-ban megadott folyamat stdout és stderr kimenete az stdoutLogFile fájlra lesz átirányítva. |
false |
stdoutLogFile |
Nem kötelező karakterlánc attribútum. Megadja azt a relatív vagy abszolút fájl elérési útját, amelyhez a folyamatPathban megadott folyamatból származó stdout és stderr naplózva van. A relatív elérési utak a webhely gyökeréhez vannak viszonyítva. Olyan elérési utak, amelyek |
aspnetcore-stdout |
Környezeti változók beállítása
Az attribútumban processPath lévő folyamathoz környezeti változók adhatók meg. Adjon meg egy környezeti változót egy <environmentVariable><environmentVariables> gyűjteményelem gyermekelemével. Az ebben a szakaszban beállított környezeti változók elsőbbséget élveznek a rendszer környezeti változóival szemben.
Az alábbi példa két környezeti változót állít be a következőben web.config: .
ASPNETCORE_ENVIRONMENT konfigurálja az alkalmazás környezetét a következőre Development: . A fejlesztő ideiglenesen beállíthatja ezt az értéket a web.config fájlban, hogy a fejlesztői kivételoldal betöltődjön egy alkalmazáskivétel hibakeresésekor.
CONFIG_DIR Egy példa egy felhasználó által definiált környezeti változóra, ahol a fejlesztő olyan kódot írt, amely beolvassa az értéket az indításkor, hogy létrehozhassa az alkalmazás konfigurációs fájljának betöltésének útvonalát.
<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>
Megjegyzés:
A környezet web.config közvetlen beállításának másik lehetősége, ha a <EnvironmentName> tulajdonságot a közzétételi profilba (.pubxml) vagy a projektfájlba foglalja bele. Ez a megközelítés a környezetet web.config állítja be a projekt közzétételekor:
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
Figyelmeztetés
Csak olyan átmeneti és tesztelési kiszolgálókon állítsa be a ASPNETCORE_ENVIRONMENT környezeti változót Development , amelyek nem érhetők el a nem megbízható hálózatokhoz, például az internethez.
app_offline.htm
Ha egy alkalmazás gyökérkönyvtárában egy névvel app_offline.htm rendelkező fájl található, a ASP.NET core modul megpróbálja elegánsan leállítani az alkalmazást, és leállítani a bejövő kérések feldolgozását. Ha az alkalmazás a megadott shutdownTimeLimitmásodpercek száma után is fut, a ASP.NET core modul leáll a futó folyamaton.
Amíg a app_offline.htm fájl jelen van, a ASP.NET core modul a fájl tartalmának visszaküldésével válaszol a app_offline.htm kérelmekre.
app_offline.htm A fájl eltávolítása után a következő kérés elindítja az alkalmazást.
A folyamaton kívüli üzemeltetési modell használatakor előfordulhat, hogy az alkalmazás nem áll le azonnal, ha van nyitott kapcsolat. Egy WebSocket-kapcsolat például késleltetheti az alkalmazás leállítását.
Indítási hibalap
Mind a folyamatban lévő, mind a folyamaton kívüli üzemeltetés egyéni hibaoldalakat készít, amikor nem sikerül elindítani az alkalmazást.
Ha az ASP.NET Core modul nem találja a folyamaton belüli vagy a folyamaton kívüli kéréskezelőt, megjelenik egy 500.0 - Folyamaton belüli/Folyamaton kívüli Kezelő betöltési hiba állapotkódlap.
Folyamatban lévő üzemeltetés esetén, ha a ASP.NET core modul nem tudja elindítani az alkalmazást, megjelenik egy 500.30 – Indítási hiba állapotkódlap.
Folyamaton kívüli üzemeltetés esetén, ha a ASP.NET core modul nem indítja el a háttérfolyamatot, vagy a háttérfolyamat elindul, de nem figyeli a konfigurált portot, megjelenik egy 502.5 – Folyamathiba állapotkódlapja.
A lap letiltásához és az alapértelmezett IIS 5xx állapotkódlapra való visszatéréshez használja az disableStartUpErrorPage attribútumot. Az egyéni hibaüzenetek konfigurálásáról további információt a HTTP-hibák <httpErrors>című témakörben talál.
Napló létrehozása és átirányítása
Az ASP.NET Core modul átirányítja az stdout és stderr konzol kimenetét a lemezre, ha a stdoutLogEnabled elem stdoutLogFile és aspNetCore attribútumai be vannak állítva. Az elérési úton lévő stdoutLogFile mappákat a modul hozza létre a naplófájl létrehozásakor. Az alkalmazáskészletnek írási hozzáféréssel kell rendelkeznie a naplók írási helyéhez ( IIS AppPool\<app_pool_name> írási engedély megadásához).
A naplók nem lesznek elforgatva, kivéve, ha a folyamat újrahasznosítása/újraindítása történik. A hoszt felelőssége, hogy korlátozza a naplók által használt lemezterületet.
A stdout-napló használata csak az alkalmazások indítási problémáinak elhárításához ajánlott az IIS-en való üzemeltetéskor vagy az IIS-hez a Visual Studióval való fejlesztési idő támogatásához, nem pedig a helyi hibakereséshez és az alkalmazás IIS Expresszel való futtatásához.
Ne használja az stdout naplót általános alkalmazásnaplózási célokra. Az ASP.NET Core-alkalmazások rutinnaplózásához használjon egy naplózási kódtárat, amely korlátozza a naplófájlok méretét, és elforgatja a naplókat. További információ: külső naplózási szolgáltatók.
A naplófájl létrehozásakor a rendszer automatikusan hozzáad egy időbélyeget és egy fájlkiterjesztést. A naplófájl neve úgy áll össze, hogy hozzáfűzi az időbélyeget, a folyamatazonosítót és a fájlkiterjesztést (.log) az stdoutLogFile elérési út utolsó szegmenséhez (általában stdout) aláhúzásjelekkel elválasztva. Ha az stdoutLogFile elérési út stdout-re végződik, egy 1934 PID-vel rendelkező alkalmazás naplója, amely 2018. 02. 05-én 19:42:32-kor lett létrehozva, az stdout_20180205194132_1934.log fájlnevet viseli.
Ha stdoutLogEnabled hamis, az alkalmazás indításakor előforduló hibákat a rendszer rögzíti, és legfeljebb 30 KB-ig bocsátja ki az eseménynaplóba. Az indítás után a rendszer minden további naplót elvet.
Az alábbi mintaelem aspNetCore konfigurálja az stdout-naplózást a relatív útvonalon .\log\. Győződjön meg arról, hogy az AppPool felhasználói identitása rendelkezik engedéllyel a megadott elérési útra való íráshoz.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
</aspNetCore>
Amikor közzétesz egy alkalmazást az Azure App Service üzembe helyezéséhez, a Web SDK az stdoutLogFile értéket \\?\%home%\LogFiles\stdout értékre állítja. A %home környezeti változó előre definiálva van az Azure App Service által üzemeltetett alkalmazásokhoz.
Naplózási szűrőszabályok létrehozásához tekintse meg a naplószűrő szabályok alkalmazása a ASP.NET Core naplózási dokumentációjának kódszakaszában.
Az elérési utak formátumáról további információt a Windows-rendszerek fájlútvonal-formátumai című témakörben talál.
Továbbfejlesztett diagnosztikai naplók
A ASP.NET core modul konfigurálható továbbfejlesztett diagnosztikai naplók biztosításához. Adja hozzá az <handlerSettings> elemet a <aspNetCore> elemhez web.config. A debugLevelTRACE beállítása magasabb szintű diagnosztikai információs hűséget tár fel.
<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>
Az elérési út minden mappáját (logs az előző példában) a modul hozza létre a naplófájl létrehozásakor. Az alkalmazáskészletnek írási hozzáféréssel kell rendelkeznie ahhoz a helyhez, ahol a naplók meg vannak írva (írási engedély megadásához használja IIS AppPool\{APP POOL NAME}a helyőrzőt, ahol a helyőrző {APP POOL NAME} az alkalmazáskészlet neve).
A hibakeresési szint (debugLevel) értékei közé tartozhat a szint és a hely is.
Szintek (a legkevésbé bőbeszédűtől a legbővebbig):
- ERROR
- FIGYELMEZTETÉS
- INFORMÁCIÓ
- NYOM
Helyek (több hely is engedélyezett):
- KONZOL
- EVENTLOG
- FILE
A kezelő beállításai környezeti változókon keresztül is megadhatóak:
-
ASPNETCORE_MODULE_DEBUG_FILE: A hibakeresési naplófájl elérési útja. (Alapértelmezett:aspnetcore-debug.log) -
ASPNETCORE_MODULE_DEBUG: Hibakeresési szint beállítása.
Figyelmeztetés
Ne hagyja, hogy a hibakeresési naplózás engedélyezve legyen az üzemelő példányban a probléma elhárításához szükségesnél tovább. A napló mérete nem korlátozott. A hibakeresési napló engedélyezésének elhagyásával kimerítheti a rendelkezésre álló lemezterületet, és összeomlhat a kiszolgáló vagy az appszolgáltatás.
Tekintse meg a web.config konfiguráció használatának példáját a aspNetCore elemre a web.config fájlban.
A verem méretének módosítása
Csak a folyamaton belüli üzemeltetési modell használata esetén érvényes.
Konfigurálja a felügyelt verem méretét a bájtokban megadott stackSize beállítással a következőképpen web.config. Az alapértelmezett méret 1 048 576 bájt (1 MB).
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile="\\?\%home%\LogFiles\stdout"
hostingModel="inprocess">
<handlerSettings>
<handlerSetting name="stackSize" value="2097152" />
</handlerSettings>
</aspNetCore>
A proxykonfiguráció HTTP protokollt és párosítási jogkivonatot használ
Csak a folyamaton kívüli üzemeltetésre vonatkozik.
A ASP.NET core modul Kestrel között létrehozott proxy a HTTP protokollt használja. Nem áll fenn a modul és Kestrel a kiszolgálótól távol lévő hely közötti forgalom lehallgatásának kockázata.
A párosítási token garantálja, hogy a fogadott Kestrel kéréseket az IIS proxizta, és nem más forrásból származtak. A párosítási jogkivonatot a modul egy környezeti változóba (ASPNETCORE_TOKEN) állítja be. A párosítási token minden proxizált kérés fejlécében (MS-ASPNETCORE-TOKEN) is elhelyezve van. Az IIS Middleware minden kapott kérést ellenőriz annak ellenőrzéséhez, hogy a párosítási jogkivonat fejlécének értéke megegyezik-e a környezeti változó értékével. Ha a token értékei nem egyeznek meg, a rendszer naplózza és elutasítja a kérést. A párosítási token környezeti változó, valamint a modul és Kestrel közötti forgalom nem érhetők el szerveren kívüli helyről. A párosítási jogkivonat értékének ismerete nélkül a kiberbűnözők nem küldhetnek be olyan kéréseket, amelyek megkerülik az IIS Middleware-ben való ellenőrzést.
ASP.NET core modul megosztott IIS-konfigurációval
A ASP.NET core modul telepítője a TrustedInstaller-fiók jogosultságaival fut. Mivel a helyi rendszerfiók nem rendelkezik módosítási engedéllyel az IIS megosztott konfigurációja által használt megosztási útvonalhoz, a telepítő megtagadta a hozzáférést a megosztás fájljában található applicationHost.config modulbeállítások konfigurálásakor.
Ha megosztott IIS-konfigurációt használ ugyanazon a gépen, mint az IIS-telepítés, futtassa a ASP.NET Core Hosting Bundle telepítőt a OPT_NO_SHARED_CONFIG_CHECK következő paraméterrel 1:
dotnet-hosting-{VERSION}.exe OPT_NO_SHARED_CONFIG_CHECK=1
Ha a megosztott konfiguráció elérési útja nem ugyanazon a gépen található, mint az IIS-telepítés, kövesse az alábbi lépéseket:
- Tiltsa le az IIS megosztott konfigurációját.
- Indítsa el a telepítőt.
- Exportálja a frissített
applicationHost.configfájlt a megosztásba. - Engedélyezze újra az IIS megosztott konfigurációját.
Modulverzió és üzemeltetési csomag telepítőnaplói
A telepített ASP.NET core modul verziójának meghatározása:
- A tárhelyrendszeren navigáljon ide
%windir%\System32\inetsrv. - Keresse meg a
aspnetcore.dllfájlt. - Kattintson a jobb gombbal a fájlra, és válassza a Helyi menü Tulajdonságok parancsát .
- Válassza a Részletek lapot. A Fájl és a Termék verzió a modul telepített verzióját jelöli.
A modul üzemeltetési csomag telepítőnaplói a következő helyen C:\Users\%UserName%\AppData\Local\Temptalálhatók: . A fájl neve dd_DotNetCoreWinSvrHosting__{TIMESTAMP}_000_AspNetCoreModule_x64.log.
Modul-, séma- és konfigurációs fájlhelyek
Modul
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
Schema
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
Konfiguráció
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
A fájlok a aspnetcore fájlban applicationHost.config való kereséssel találhatók meg.
Az ASP.NET Core modul (ANCM) egy natív IIS-modul, amely az IIS csővezetékhez a következőhöz csatlakozik:
- Egy ASP.NET Core-alkalmazás üzemeltetése az IIS munkavégző folyamatán (
w3wp.exea folyamaton belüli üzemeltetési modellen belül). - Webkérelmek továbbítása a kiszolgálót futtatóKestrel háttérrendszerbeli ASP.NET Core-alkalmazásba, amely a folyamaton kívüli üzemeltetési modell.
Támogatott Windows-verziók:
- Windows 7 vagy újabb
- Windows Server 2008 R2 vagy újabb
A folyamaton belüli üzemeltetés során a modul egy folyamaton belüli kiszolgáló-implementációt használ az IIS-hez, az úgynevezett IIS HTTP Servert (IISHttpServer).
A folyamaton kívüli üzemeltetés esetén a modul csak a következővel Kestrelműködik: . A modul nem működik HTTP.sys.
Üzemeltetési modellek
Folyamaton belüli üzemeltetési modell
Ha egy alkalmazást a folyamatban lévő üzemeltetéshez szeretne konfigurálni, adja hozzá a <AspNetCoreHostingModel> tulajdonságot az alkalmazás projektfájljába a következő értékkel InProcess (a folyamaton kívüli üzemeltetés a következő értékkel OutOfProcessvan beállítva):
<PropertyGroup>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
A folyamatban lévő üzemeltetési modell nem támogatott a .NET-keretrendszert célzó ASP.NET Core-alkalmazások esetében.
<AspNetCoreHostingModel> értéke nem érzékeny a kis- és nagybetűkre, így a inprocess és outofprocess érvényes értékek.
Ha a <AspNetCoreHostingModel> tulajdonság nem szerepel a fájlban, az alapértelmezett érték a következő OutOfProcess.
A folyamaton belüli üzemeltetésre a következő jellemzők vonatkoznak:
Az IIS HTTP-kiszolgáló (
IISHttpServer) használatos Kestrel helyett. A folyamatban lévő CreateDefaultBuilder a következő műveletet hívja meg: UseIIS- Regisztrálja a
IISHttpServer. - Konfigurálja azt a port- és alapelérési utat, amelyen a kiszolgálónak figyelnie kell, amikor a ASP.NET Core-modul mögött fut.
- Konfigurálja a hostot az indítási hibák rögzítésére.
- Regisztrálja a
A requestTimeout attribútum nem vonatkozik a folyamatban lévő üzemeltetésre.
Az alkalmazáskészletek alkalmazások közötti megosztása nem támogatott. Alkalmazásonként egy alkalmazáskészletet használhat.
Ha webtelepítést használ, vagy manuálisan helyez el egyapp_offline.htm fájlt az üzembe helyezésben, előfordulhat, hogy az alkalmazás nem áll le azonnal, ha van nyitott kapcsolat. Egy websocket-kapcsolat például késleltetheti az alkalmazás leállítását.
Az alkalmazás architektúrájának (bititásának) és a telepített futtatókörnyezetnek (x64 vagy x86) meg kell egyeznie az alkalmazáskészlet architektúrájának.
A rendszer észleli az ügyfél kapcsolatának megszakadását. A HttpContext.RequestAborted lemondási token törlésre kerül, amikor az ügyfél kapcsolatát megszakad.
A ASP.NET Core 2.2.1 vagy korábbi GetCurrentDirectory verzióiban az IIS által indított folyamat feldolgozó könyvtárát adja vissza az alkalmazás könyvtára helyett (például C:\Windows\System32\inetsrv for w3wp.exe).
Az alkalmazás aktuális könyvtárát meghatározó mintakódért tekintse meg a CurrentDirectoryHelpers osztályt. Hívja meg a
SetCurrentDirectorymetódust. További hívások az alkalmazás címtárának megadásához GetCurrentDirectory .Folyamatba beágyazott üzemeltetés esetén a rendszer nem hívja meg AuthenticateAsync belsőleg a felhasználó inicializálásához. Ezért egy IClaimsTransformation implementáció, amelyet a jogcímek minden hitelesítés utáni átalakítására használnak, alapértelmezés szerint nincs aktiválva. A követeléseket implementációval történő IClaimsTransformation átalakításakor hívja meg AddAuthentication a hitelesítési szolgáltatások hozzáadásához.
public void ConfigureServices(IServiceCollection services) { services.AddTransient<IClaimsTransformation, ClaimsTransformer>(); services.AddAuthentication(IISServerDefaults.AuthenticationScheme); } public void Configure(IApplicationBuilder app) { app.UseAuthentication(); }
Folyamaton kívüli üzemeltetési modell
Ha folyamaton kívüli üzemeltetésre szeretne konfigurálni egy alkalmazást, használja a projektfájlban az alábbi módszerek egyikét:
- Ne adja meg a tulajdonságot
<AspNetCoreHostingModel>. Ha a<AspNetCoreHostingModel>tulajdonság nem szerepel a fájlban, az alapértelmezett érték a következőOutOfProcess. - Állítsa a tulajdonság értékét
<AspNetCoreHostingModel>a következő értékreOutOfProcess(a folyamaton belüli üzemeltetés a következővelInProcessvan beállítva):
<PropertyGroup>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
Az érték nem érzékeny a kis- és nagybetűkre, így a inprocess és a outofprocess érvényes értékek.
Kestrel kiszolgálót használ az IIS HTTP-kiszolgáló (IISHttpServer) helyett.
A folyamaton kívüli CreateDefaultBuilder a következőket hívja meg UseIISIntegration:
- Konfigurálja azt a port- és alapelérési utat, amelyen a kiszolgálónak figyelnie kell, amikor a ASP.NET Core-modul mögött fut.
- Konfigurálja a hostot az indítási hibák rögzítésére.
Üzemeltetési modell változásai
Ha a hostingModel beállítás módosul a web.config fájlban (ezt a Konfiguráció web.config szakaszban ismertetjük), a modul újrahasznosítja az IIS feldolgozói folyamatát.
Az IIS Express esetében a modul nem hasznosítja újra a feldolgozói folyamatot, hanem az aktuális IIS Express-folyamat kecses leállítását indítja el. Az alkalmazás következő kérése egy új IIS Express-folyamatot hoz létre.
Folyamat neve
Process.GetCurrentProcess().ProcessName jelentések w3wp (folyamatban lévő) vagy / (folyamaton kívüli).iisexpressdotnet
Számos natív modul, például a Windows-hitelesítés, aktív marad. A ASP.NET Core modullal aktív IIS-modulokkal kapcsolatos további információkért tekintse meg a ASP.NET Core-val rendelkező IIS-modulokat.
A ASP.NET core modul a következőket is lehetővé teszi:
- Munkafolyamat környezeti változóinak beállítása.
- Az indítási problémák elhárítása érdekében naplózza a fájltárolóba irányuló stdout kimenetet.
- Windows-hitelesítési jogkivonatok továbbítása.
A ASP.NET Core Modul (ANCM) telepítése és használata
A ASP.NET Core modul telepítésével kapcsolatos utasításokért lásd : .NET Core Hosting Bundle telepítése. A ASP.NET core modul előre és hátra kompatibilis a .NET támogatott kiadásaival.
A jelentős változásokat és biztonsági figyelmeztetéseket a közlemények adattárában jelentjük. A hirdetmények egy címkeszűrő kiválasztásával egy adott verzióra korlátozhatók.
A web.config fájl konfigurálása
Az ASP.NET Core modul a web.config fájl aspNetCore csomópontjának system.webServer szakaszával van konfigurálva.
A rendszer a következő web.config fájlt teszi közzé egy keretrendszerfüggő üzembe helyezéshez , és konfigurálja a ASP.NET core modult a helykérések kezeléséhez:
<?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 következő web.config egy önálló üzembe helyezéshez van közzétéve.
<?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>
A InheritInChildApplications tulajdonság úgy van beállítva false , hogy jelezze, hogy a <helyelemben> megadott beállításokat nem öröklik az alkalmazás alkönyvtárában található alkalmazások.
Amikor egy alkalmazást üzembe helyez az Azure App Service-ben, az stdoutLogFile elérési út a következőre \\?\%home%\LogFiles\stdoutvan állítva: . Az elérési út menti az stdout-naplókat a LogFiles mappába, amely a szolgáltatás által automatikusan létrehozott hely.
Az IIS-alalkalmazás konfigurálással kapcsolatos információkért lásd: Gazdagép ASP.NET Core Windows rendszeren IIS-vel.
Az aspNetCore elem attribútumai
| Attribute | Description | Alapértelmezett |
|---|---|---|
arguments |
Nem kötelező karakterlánc attribútum. A végrehajtható fájlhoz megadott argumentumok a következőben: |
|
disableStartUpErrorPage |
Nem kötelező logikai attribútum. Ha igaz, a rendszer letiltja az 502.5 – Folyamathiba lapot, és a web.config konfigurált 502-s állapotkódlap elsőbbséget élvez. |
false |
forwardWindowsAuthToken |
Nem kötelező logikai attribútum. Ha igaz, a rendszer a jogkivonatot kérésenként "MS-ASPNETCORE-WINAUTHTOKEN" fejlécként továbbítja a %ASPNETCORE_PORT% figyelő gyermekfolyamatnak. A feladata ennek a folyamatnak, hogy kérésenként meghívja a CloseHandle-t ezen a tokenen. |
true |
hostingModel |
Nem kötelező karakterlánc attribútum. Az üzemeltetési modellt folyamaton belüliként ( |
OutOfProcessoutofprocess |
processesPerApplication |
Nem kötelező egész szám attribútum. Az alkalmazásonként felpöröghető beállításban †Folyamatközi üzemeltetés esetén az érték korlátozott A beállítás |
Alapértelmezett: 1Min: 1Max: 100† |
processPath |
Kötelező karakterlánc attribútum. A HTTP-kéréseket figyelő folyamatot megnyitó végrehajtható fájl elérési útja. A relatív elérési utak támogatottak. Ha az elérési út a kezdőbetűvel |
|
rapidFailsPerMinute |
Nem kötelező egész szám attribútum. Megadja, hogy a megadott A folyamaton belüli üzemeltetés nem támogatott. |
Alapértelmezett: 10Min: 0Max: 100 |
requestTimeout |
Nem kötelező időbélyeg attribútum. Azt az időtartamot adja meg, amíg a ASP.NET core modul a %ASPNETCORE_PORT%figyelési folyamat válaszára vár. Az ASP.NET Core modulnak az ASP.NET Core 2.1-es vagy újabb verzióival szállított változataiban a A folyamaton belüli üzemeltetésre nem vonatkozik. A folyamatban lévő üzemeltetés esetén a modul megvárja, amíg az alkalmazás feldolgozni fogja a kérést. A karakterlánc percek és másodpercek érvényes értékei a 0–59 tartományba tartoznak. A 60 perc vagy másodperc értékének használata 500 belső kiszolgálóhibát eredményez. |
Alapértelmezett: 00:02:00Min: 00:00:00Max: 360:00:00 |
shutdownTimeLimit |
Nem kötelező egész szám attribútum. Az időtartam másodpercben, ameddig a modul várja a végrehajtható fájl rendben való leállítását a |
Alapértelmezett: 10Min: 0Max: 600 |
startupTimeLimit |
Nem kötelező egész szám attribútum. A modul az időtartamot másodpercben méri, amely alatt megvárja, hogy a végrehajtható fájl egy, a porton hallgató folyamatot indítson. Ha túllépi ezt az időkorlátot, a modul leáll a folyamaton. Folyamatban lévő üzemeltetés esetén: A folyamat nem indul újra, és nem használja a
Folyamaton kívüli üzemeltetés esetén: A modul megkísérli újraindítani a folyamatot, amikor új kérést kap, és továbbra is megpróbálja újraindítani a folyamatot az azt követő bejövő kérelmeken, kivéve, ha az alkalmazás nem indítja el A 0 (nulla) érték nem számít végtelen időtúllépésnek. |
Alapértelmezett: 120Min: 0Max: 3600 |
stdoutLogEnabled |
Nem kötelező logikai attribútum. Ha igaz, az stdout és a stderr a megadott |
false |
stdoutLogFile |
Nem kötelező karakterlánc attribútum. Adja meg azt az abszolút vagy relatív fájl elérési útját, amelyhez a rendszer |
aspnetcore-stdout |
Környezeti változók beállítása
Az attribútumban processPath lévő folyamathoz környezeti változók adhatók meg. Adjon meg egy környezeti változót egy <environmentVariable><environmentVariables> gyűjteményelem gyermekelemével. Az ebben a szakaszban beállított környezeti változók elsőbbséget élveznek a rendszer környezeti változóival szemben.
Az alábbi példa két környezeti változót állít be.
ASPNETCORE_ENVIRONMENT konfigurálja az alkalmazás környezetét a következőre Development: . A fejlesztő ideiglenesen beállíthatja ezt az értéket a web.config fájlban, hogy a fejlesztői kivételoldal betöltődjön egy alkalmazáskivétel hibakeresésekor.
CONFIG_DIR Egy példa egy felhasználó által definiált környezeti változóra, ahol a fejlesztő olyan kódot írt, amely beolvassa az értéket az indításkor, hogy létrehozhassa az alkalmazás konfigurációs fájljának betöltésének útvonalát.
<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>
Megjegyzés:
A környezet közvetlen web.config beállítása helyett, lehetőség van a <EnvironmentName> tulajdonságot belefoglalni a közzétételi profilba (.pubxml) vagy a projektfájlba. Ez a megközelítés a környezetet web.config állítja be a projekt közzétételekor:
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
Figyelmeztetés
Csak olyan átmeneti és tesztelési kiszolgálókon állítsa be a ASPNETCORE_ENVIRONMENT környezeti változót Development , amelyek nem érhetők el a nem megbízható hálózatokhoz, például az internethez.
app_offline.htm
Ha egy alkalmazás gyökérkönyvtárában egy névvel app_offline.htm rendelkező fájl található, a ASP.NET core modul megpróbálja elegánsan leállítani az alkalmazást, és leállítani a bejövő kérések feldolgozását. Ha az alkalmazás a megadott shutdownTimeLimitmásodpercek száma után is fut, a ASP.NET core modul leáll a futó folyamaton.
Amíg a app_offline.htm fájl jelen van, a ASP.NET core modul a fájl tartalmának visszaküldésével válaszol a app_offline.htm kérelmekre.
app_offline.htm A fájl eltávolítása után a következő kérés elindítja az alkalmazást.
A folyamaton kívüli üzemeltetési modell használatakor előfordulhat, hogy az alkalmazás nem áll le azonnal, ha van nyitott kapcsolat. Egy websocket-kapcsolat például késleltetheti az alkalmazás leállítását.
Indítási hibalap
Mind a folyamatban lévő, mind a folyamaton kívüli üzemeltetés egyéni hibaoldalakat készít, amikor nem sikerül elindítani az alkalmazást.
Ha az ASP.NET Core modul nem találja a folyamaton belüli vagy a folyamaton kívüli kéréskezelőt, megjelenik egy 500.0 - Folyamaton belüli/Folyamaton kívüli Kezelő betöltési hiba állapotkódlap.
Folyamatban lévő üzemeltetés esetén, ha a ASP.NET core modul nem tudja elindítani az alkalmazást, megjelenik egy 500.30 – Indítási hiba állapotkódlap.
Folyamaton kívüli üzemeltetés esetén, ha a ASP.NET core modul nem indítja el a háttérfolyamatot, vagy a háttérfolyamat elindul, de nem figyeli a konfigurált portot, megjelenik egy 502.5 – Folyamathiba állapotkódlapja.
A lap letiltásához és az alapértelmezett IIS 5xx állapotkódlapra való visszatéréshez használja az disableStartUpErrorPage attribútumot. További információ az egyéni hibaüzenetek <konfigurálásáról: HTTP-hibák httpErrors>.
Napló létrehozása és átirányítása
Az ASP.NET Core modul átirányítja az stdout és stderr konzol kimenetét a lemezre, ha a stdoutLogEnabled elem stdoutLogFile és aspNetCore attribútumai be vannak állítva. Az elérési úton lévő stdoutLogFile mappákat a modul hozza létre a naplófájl létrehozásakor. Az alkalmazáskészletnek írási hozzáféréssel kell rendelkeznie ahhoz a helyhez, ahol a naplók meg vannak írva (írási engedély megadására szolgál IIS AppPool\{APP POOL NAME} , ahol a helyőrző {APP POOL NAME} az alkalmazáskészlet neve).
A naplók nem lesznek elforgatva, kivéve, ha a folyamat újrahasznosítása/újraindítása történik. A hoszt felelőssége, hogy korlátozza a naplók által használt lemezterületet.
A stdout-napló használata csak az alkalmazások indítási problémáinak elhárításához ajánlott az IIS-en való üzemeltetéskor vagy az IIS-hez a Visual Studióval való fejlesztési idő támogatásához, nem pedig a helyi hibakereséshez és az alkalmazás IIS Expresszel való futtatásához.
Ne használja az stdout naplót általános alkalmazásnaplózási célokra. Az ASP.NET Core-alkalmazások rutinnaplózásához használjon egy naplózási kódtárat, amely korlátozza a naplófájlok méretét, és elforgatja a naplókat. További információ: külső naplózási szolgáltatók.
A naplófájl létrehozásakor a rendszer automatikusan hozzáad egy időbélyeget és egy fájlkiterjesztést. A naplófájl neve úgy áll össze, hogy hozzáfűzi az időbélyeget, a folyamatazonosítót és a fájlkiterjesztést (.log) az stdoutLogFile elérési út utolsó szegmenséhez (általában stdout) aláhúzásjelekkel elválasztva. Ha az stdoutLogFile elérési út stdout-re végződik, egy 1934 PID-vel rendelkező alkalmazás naplója, amely 2018. 02. 05-én 19:42:32-kor lett létrehozva, az stdout_20180205194132_1934.log fájlnevet viseli.
Ha stdoutLogEnabled hamis, az alkalmazás indításakor előforduló hibákat a rendszer rögzíti, és legfeljebb 30 KB-ig bocsátja ki az eseménynaplóba. Az indítás után a rendszer minden további naplót elvet.
Az alábbi mintaelem aspNetCore konfigurálja az stdout-naplózást a relatív útvonalon .\log\. Győződjön meg arról, hogy az alkalmazáskészlet felhasználói identitása rendelkezik engedéllyel a megadott elérési útra való íráshoz.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
</aspNetCore>
Amikor közzétesz egy alkalmazást az Azure App Service üzembe helyezéséhez, a Web SDK az stdoutLogFile értéket \\?\%home%\LogFiles\stdout értékre állítja. A %home környezeti változó előre definiálva van az Azure App Service által üzemeltetett alkalmazásokhoz.
Az elérési utak formátumáról további információt a Windows-rendszerek fájlútvonal-formátumai című témakörben talál.
Továbbfejlesztett diagnosztikai naplók
A ASP.NET core modul konfigurálható továbbfejlesztett diagnosztikai naplók biztosításához. Adja hozzá az <handlerSettings> elemet a <aspNetCore> elemhez web.config. A debugLevelTRACE beállítása magasabb szintű diagnosztikai információs hűséget tár fel.
<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>
Az értékhez <handlerSetting> megadott elérési úton lévő mappákat (logs az előző példában) a modul nem hozza létre automatikusan, és az üzembe helyezés során már léteznie kell. Az alkalmazáskészletnek írási hozzáféréssel kell rendelkeznie ahhoz a helyhez, ahol a naplók meg vannak írva (írási engedély megadására szolgál IIS AppPool\{APP POOL NAME} , ahol a helyőrző {APP POOL NAME} az alkalmazáskészlet neve).
A hibakeresési szint (debugLevel) értékei közé tartozhat a szint és a hely is.
Szintek (a legkevésbé bőbeszédűtől a legbővebbig):
- ERROR
- FIGYELMEZTETÉS
- INFORMÁCIÓ
- NYOM
Helyek (több hely is engedélyezett):
- KONZOL
- EVENTLOG
- FILE
A kezelő beállításai környezeti változókon keresztül is megadhatóak:
-
ASPNETCORE_MODULE_DEBUG_FILE: A hibakeresési naplófájl elérési útja. (Alapértelmezett:aspnetcore-debug.log) -
ASPNETCORE_MODULE_DEBUG: Hibakeresési szint beállítása.
Figyelmeztetés
Ne hagyja, hogy a hibakeresési naplózás engedélyezve legyen az üzemelő példányban a probléma elhárításához szükségesnél tovább. A napló mérete nem korlátozott. A hibakeresési napló engedélyezésének elhagyásával kimerítheti a rendelkezésre álló lemezterületet, és összeomlhat a kiszolgáló vagy az appszolgáltatás.
Tekintse meg a web.config konfiguráció használatának példáját a aspNetCore elemre a web.config fájlban.
A proxykonfiguráció HTTP protokollt és párosítási jogkivonatot használ
Csak a folyamaton kívüli üzemeltetésre vonatkozik.
A ASP.NET core modul Kestrel között létrehozott proxy a HTTP protokollt használja. Nem áll fenn a modul és Kestrel a kiszolgálótól távol lévő hely közötti forgalom lehallgatásának kockázata.
A párosítási token garantálja, hogy a fogadott Kestrel kéréseket az IIS proxizta, és nem más forrásból származtak. A párosítási jogkivonatot a modul egy környezeti változóba (ASPNETCORE_TOKEN) állítja be. A párosítási token minden proxizált kérés fejlécében (MS-ASPNETCORE-TOKEN) is elhelyezve van. Az IIS Middleware minden kapott kérést ellenőriz annak ellenőrzéséhez, hogy a párosítási jogkivonat fejlécének értéke megegyezik-e a környezeti változó értékével. Ha a token értékei nem egyeznek meg, a rendszer naplózza és elutasítja a kérést. A párosítási token környezeti változó, valamint a modul és Kestrel közötti forgalom nem érhetők el szerveren kívüli helyről. A párosítási jogkivonat értékének ismerete nélkül a kiberbűnözők nem küldhetnek be olyan kéréseket, amelyek megkerülik az IIS Middleware-ben való ellenőrzést.
ASP.NET core modul megosztott IIS-konfigurációval
A ASP.NET core modul telepítője a TrustedInstaller fiók jogosultságaival fut. Mivel a helyi rendszerfiók nem rendelkezik módosítási engedéllyel az IIS megosztott konfigurációja által használt megosztási útvonalhoz, a telepítő megtagadta a hozzáférést a megosztás fájljában található applicationHost.config modulbeállítások konfigurálásakor.
Ha megosztott IIS-konfigurációt használ ugyanazon a gépen, mint az IIS-telepítés, futtassa a ASP.NET Core Hosting Bundle telepítőt a OPT_NO_SHARED_CONFIG_CHECK következő paraméterrel 1:
dotnet-hosting-{VERSION}.exe OPT_NO_SHARED_CONFIG_CHECK=1
Ha a megosztott konfiguráció elérési útja nem ugyanazon a gépen található, mint az IIS-telepítés, kövesse az alábbi lépéseket:
- Tiltsa le az IIS megosztott konfigurációját.
- Indítsa el a telepítőt.
- Exportálja a frissített
applicationHost.configfájlt a megosztásba. - Engedélyezze újra az IIS megosztott konfigurációját.
Modulverzió és üzemeltetési csomag telepítőnaplói
A telepített ASP.NET core modul verziójának meghatározása:
- A tárhelyrendszeren navigáljon ide
%windir%\System32\inetsrv. - Keresse meg a
aspnetcore.dllfájlt. - Kattintson a jobb gombbal a fájlra, és válassza a Helyi menü Tulajdonságok parancsát .
- Válassza a Részletek lapot. A Fájl és a Termék verzió a modul telepített verzióját jelöli.
A modul üzemeltetési csomag telepítőnaplói a következő helyen C:\\Users\\%UserName%\\AppData\\Local\\Temptalálhatók: . A fájl neve dd_DotNetCoreWinSvrHosting__\{TIMESTAMP}_000_AspNetCoreModule_x64.log, ahol a helyőrző {TIMESTAMP} az időbélyeg.
Modul-, séma- és konfigurációs fájlhelyek
Modul
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
Schema
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
Konfiguráció
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
A fájlok a aspnetcore fájlban applicationHost.config való kereséssel találhatók meg.
A ASP.NET Core-modul (ANCM) egy natív IIS-modul, amely az IIS-folyamathoz csatlakozva továbbítja a webes kéréseket a háttérrendszerbeli ASP.NET Core-alkalmazásoknak.
Támogatott Windows-verziók:
- Windows 7 vagy újabb
- Windows Server 2008 R2 vagy újabb
A modul csak a következővel Kestrelműködik: . A modul nem kompatibilis a HTTP.sys.
Mivel ASP.NET Core-alkalmazások az IIS feldolgozói folyamattól eltérő folyamatban futnak, a modul a folyamatkezelést is kezeli. A modul elindítja a ASP.NET Core-alkalmazás folyamatát, amikor az első kérés megérkezik, és összeomlásakor újraindítja az alkalmazást. Ez lényegében ugyanaz a viselkedés, mint a windowsos folyamataktiválási szolgáltatás (WAS) által felügyelt, folyamatban lévő IIS-ben futó ASP.NET 4.x-es alkalmazások esetében.
Az alábbi ábra az IIS, a ASP.NET Core Modul és egy alkalmazás közötti kapcsolatot mutatja be:
A kérések az internetről érkeznek a kernel módú HTTP.sys illesztőhöz. Az illesztőprogram átirányítja a kéréseket az IIS-hez a webhely konfigurált portján, általában a 80-at (HTTP) vagy a 443-at (HTTPS). A modul egy véletlenszerű porton továbbítja a kéréseket Kestrel az alkalmazáshoz, amely nem a 80-at vagy a 443-at.
A modul egy környezeti változón keresztül adja meg a portot indításkor, és az IIS Integration Middleware konfigurálja a kiszolgálót a figyelésre http://localhost:{port}. A rendszer további ellenőrzéseket végez, és a nem a modulból származó kéréseket elutasítja a rendszer. A modul nem támogatja a HTTPS-továbbítást, így a kérések akkor is HTTP-en keresztül továbbítódnak, ha az IIS HTTPS-en keresztül érkezik.
Miután Kestrel felveszi a kérést a modulból, a rendszer leküldi a kérést a ASP.NET Core köztes szoftver folyamatába. A köztes szoftver folyamat kezeli a kérést, és példányként HttpContext továbbítja azt az alkalmazás logikájának. Az IIS-integráció által hozzáadott köztes szoftver frissíti a sémát, a távoli IP-címet és az útvonalalapot, hogy lehetővé tegye a kérés továbbítását Kestrel. A rendszer visszaküldi az alkalmazás válaszát az IIS-nek, amely visszaküldi a kérést kezdeményező HTTP-ügyfélnek.
Számos natív modul, például a Windows-hitelesítés, aktív marad. A ASP.NET Core modullal aktív IIS-modulokkal kapcsolatos további információkért tekintse meg a ASP.NET Core-val rendelkező IIS-modulokat.
A ASP.NET core modul a következőket is lehetővé teszi:
- Munkafolyamat környezeti változóinak beállítása.
- Az indítási problémák elhárítása érdekében naplózza a fájltárolóba irányuló stdout kimenetet.
- Windows-hitelesítési jogkivonatok továbbítása.
A ASP.NET Core Modul (ANCM) telepítése és használata
A ASP.NET Core modul telepítésével kapcsolatos utasításokért lásd : .NET Core Hosting Bundle telepítése.
A web.config fájl konfigurálása
Az ASP.NET Core modul a web.config fájl aspNetCore csomópontjának system.webServer szakaszával van konfigurálva.
A rendszer a következő web.config fájlt teszi közzé egy keretrendszerfüggő üzembe helyezéshez , és konfigurálja a ASP.NET core modult a helykérések kezeléséhez:
<?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 következő web.config egy önálló üzembe helyezéshez van közzétéve.
<?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>
Amikor egy alkalmazást üzembe helyez az Azure App Service-ben, az stdoutLogFile elérési út a következőre \\?\%home%\LogFiles\stdoutvan állítva: . Az elérési út menti az stdout-naplókat a LogFiles mappába, amely a szolgáltatás által automatikusan létrehozott hely.
Az IIS-alalkalmazás konfigurálással kapcsolatos információkért lásd: Gazdagép ASP.NET Core Windows rendszeren IIS-vel.
Az aspNetCore elem attribútumai
| Attribute | Description | Alapértelmezett |
|---|---|---|
arguments |
Nem kötelező karakterlánc attribútum. A processPathban megadott végrehajtható argumentumok. |
|
disableStartUpErrorPage |
Nem kötelező logikai attribútum. Ha igaz, a rendszer letiltja az 502.5 – Folyamathiba lapot, és a web.config konfigurált 502-s állapotkódlap elsőbbséget élvez. |
false |
forwardWindowsAuthToken |
Nem kötelező logikai attribútum. Ha igaz, a rendszer a jogkivonatot kérésenként "MS-ASPNETCORE-WINAUTHTOKEN" fejlécként továbbítja a %ASPNETCORE_PORT% figyelő gyermekfolyamatnak. A feladata ennek a folyamatnak, hogy kérésenként meghívja a CloseHandle-t ezen a tokenen. |
true |
processesPerApplication |
Nem kötelező egész szám attribútum. Az alkalmazásonként felpöröghető folyamatpéldányok számát adja meg a processPath beállításban. A beállítás |
Alapértelmezett: 1Min: 1Max: 100 |
processPath |
Kötelező karakterlánc attribútum. A HTTP-kéréseket figyelő folyamatot megnyitó végrehajtható fájl elérési útja. A relatív elérési utak támogatottak. Ha az elérési út a kezdőbetűvel |
|
rapidFailsPerMinute |
Nem kötelező egész szám attribútum. Megadja, hogy a processPathban megadott folyamat hányszor omlhat össze percenként. Ha túllépi ezt a korlátot, a modul a perc hátralévő részében leállítja a folyamatot. |
Alapértelmezett: 10Min: 0Max: 100 |
requestTimeout |
Nem kötelező időbélyeg attribútum. Azt az időtartamot adja meg, amíg a ASP.NET core modul a %ASPNETCORE_PORT%figyelési folyamat válaszára vár. Az ASP.NET Core modulnak az ASP.NET Core 2.1-es vagy újabb verzióival szállított változataiban a |
Alapértelmezett: 00:02:00Min: 00:00:00Max: 360:00:00 |
shutdownTimeLimit |
Nem kötelező egész szám attribútum. Az időtartam másodpercben, ameddig a modul várja a végrehajtható fájl rendben való leállítását a |
Alapértelmezett: 10Min: 0Max: 600 |
startupTimeLimit |
Nem kötelező egész szám attribútum. A modul az időtartamot másodpercben méri, amely alatt megvárja, hogy a végrehajtható fájl egy, a porton hallgató folyamatot indítson. Ha túllépi ezt az időkorlátot, a modul leáll a folyamaton. A modul megkísérli újraindítani a folyamatot, amikor új kérést kap, és továbbra is megpróbálja újraindítani a folyamatot az ezt követő bejövő kérelmeken, kivéve, ha az alkalmazás az utolsó gördülő percben nem tud elindulni a rapidFailsPerMinute alkalommal. A 0 (nulla) érték nem számít végtelen időtúllépésnek. |
Alapértelmezett: 120Min: 0Max: 3600 |
stdoutLogEnabled |
Nem kötelező logikai attribútum. Ha igaz, a processPath-ban megadott folyamat stdout és stderr kimenete az stdoutLogFile fájlra lesz átirányítva. |
false |
stdoutLogFile |
Nem kötelező karakterlánc attribútum. Megadja azt a relatív vagy abszolút fájl elérési útját, amelyhez a folyamatPathban megadott folyamatból származó stdout és stderr naplózva van. A relatív elérési utak a webhely gyökeréhez vannak viszonyítva. Olyan elérési utak, amelyek |
aspnetcore-stdout |
Környezeti változók beállítása
Az attribútumban processPath lévő folyamathoz környezeti változók adhatók meg. Adjon meg egy környezeti változót egy <environmentVariable><environmentVariables> gyűjteményelem gyermekelemével.
Figyelmeztetés
Az ebben a szakaszban beállított környezeti változók ütköznek az azonos nevű rendszerkörnyezeti változókkal. Ha egy környezeti változó a web.config fájlban és a Windows rendszerszintjén is be van állítva, a web.config fájlból származó érték hozzá lesz fűzve a rendszer környezeti változójának értékéhez (például ASPNETCORE_ENVIRONMENT: Development;Development), ami megakadályozza az alkalmazás indítását.
Az alábbi példa két környezeti változót állít be.
ASPNETCORE_ENVIRONMENT konfigurálja az alkalmazás környezetét a következőre Development: . A fejlesztő ideiglenesen beállíthatja ezt az értéket a web.config fájlban, hogy a fejlesztői kivételoldal betöltődjön egy alkalmazáskivétel hibakeresésekor.
CONFIG_DIR Egy példa egy felhasználó által definiált környezeti változóra, ahol a fejlesztő olyan kódot írt, amely beolvassa az értéket az indításkor, hogy létrehozhassa az alkalmazás konfigurációs fájljának betöltésének útvonalát.
<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>
Figyelmeztetés
Csak olyan átmeneti és tesztelési kiszolgálókon állítsa be a ASPNETCORE_ENVIRONMENT környezeti változót Development , amelyek nem érhetők el a nem megbízható hálózatokhoz, például az internethez.
app_offline.htm
Ha egy alkalmazás gyökérkönyvtárában egy névvel app_offline.htm rendelkező fájl található, a ASP.NET core modul megpróbálja elegánsan leállítani az alkalmazást, és leállítani a bejövő kérések feldolgozását. Ha az alkalmazás a megadott shutdownTimeLimitmásodpercek száma után is fut, a ASP.NET core modul leáll a futó folyamaton.
Amíg a app_offline.htm fájl jelen van, a ASP.NET core modul a fájl tartalmának visszaküldésével válaszol a app_offline.htm kérelmekre.
app_offline.htm A fájl eltávolítása után a következő kérés elindítja az alkalmazást.
Indítási hibalap
Ha a ASP.NET core modul nem indítja el a háttérfolyamatot, vagy a háttérfolyamat elindul, de nem figyeli a konfigurált portot, megjelenik egy 502.5 – Folyamathiba állapotkódlap. Ha el szeretné tiltani ezt a lapot, és vissza szeretne térni az alapértelmezett IIS 502 állapotkódlapra, használja az disableStartUpErrorPage attribútumot. További információ az egyéni hibaüzenetek <konfigurálásáról: HTTP-hibák httpErrors>.
Napló létrehozása és átirányítása
Az ASP.NET Core modul átirányítja az stdout és stderr konzol kimenetét a lemezre, ha a stdoutLogEnabled elem stdoutLogFile és aspNetCore attribútumai be vannak állítva. Az elérési úton lévő stdoutLogFile mappákat a modul hozza létre a naplófájl létrehozásakor. Az alkalmazáskészletnek írási hozzáféréssel kell rendelkeznie a naplók írási helyéhez ( IIS AppPool\<app_pool_name> írási engedély megadásához).
A naplók nem lesznek elforgatva, kivéve, ha a folyamat újrahasznosítása/újraindítása történik. A hoszt felelőssége, hogy korlátozza a naplók által használt lemezterületet.
A stdout-napló használata csak az alkalmazások indítási problémáinak elhárításához ajánlott az IIS-en való üzemeltetéskor vagy az IIS-hez a Visual Studióval való fejlesztési idő támogatásához, nem pedig a helyi hibakereséshez és az alkalmazás IIS Expresszel való futtatásához.
Ne használja az stdout naplót általános alkalmazásnaplózási célokra. Az ASP.NET Core-alkalmazások rutinnaplózásához használjon egy naplózási kódtárat, amely korlátozza a naplófájlok méretét, és elforgatja a naplókat. További információ: külső naplózási szolgáltatók.
A naplófájl létrehozásakor a rendszer automatikusan hozzáad egy időbélyeget és egy fájlkiterjesztést. A naplófájl neve úgy áll össze, hogy hozzáfűzi az időbélyeget, a folyamatazonosítót és a fájlkiterjesztést (.log) az stdoutLogFile elérési út utolsó szegmenséhez (általában stdout), aláhúzásjelekkel elválasztva. Ha az stdoutLogFile elérési út stdout-ra végződik, a 2018.02.05-én 19:42:32 időpontban létrehozott, 1934 PID-vel rendelkező alkalmazás naplójának a fájlneve stdout_20180205194132_1934.log.
Az alábbi mintaelem aspNetCore konfigurálja az stdout-naplózást a relatív útvonalon .\log\. Győződjön meg arról, hogy az AppPool felhasználói identitása rendelkezik engedéllyel a megadott elérési útra való íráshoz.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout">
</aspNetCore>
Amikor közzétesz egy alkalmazást az Azure App Service üzembe helyezéséhez, a Web SDK az stdoutLogFile értéket \\?\%home%\LogFiles\stdout értékre állítja. A %home környezeti változó előre definiálva van az Azure App Service által üzemeltetett alkalmazásokhoz.
Naplózási szűrőszabályok létrehozásához tekintse meg a naplószűrő szabályok alkalmazása a ASP.NET Core naplózási dokumentációjának kódszakaszában.
Az elérési utak formátumáról további információt a Windows-rendszerek fájlútvonal-formátumai című témakörben talál.
A proxykonfiguráció HTTP protokollt és párosítási jogkivonatot használ
A ASP.NET core modul Kestrel között létrehozott proxy a HTTP protokollt használja. Nem áll fenn a modul és Kestrel a kiszolgálótól távol lévő hely közötti forgalom lehallgatásának kockázata.
A párosítási token garantálja, hogy a fogadott Kestrel kéréseket az IIS proxizta, és nem más forrásból származtak. A párosítási jogkivonatot a modul egy környezeti változóba (ASPNETCORE_TOKEN) állítja be. A párosítási token minden proxizált kérés fejlécében (MS-ASPNETCORE-TOKEN) is elhelyezve van. Az IIS Middleware minden kapott kérést ellenőriz annak ellenőrzéséhez, hogy a párosítási jogkivonat fejlécének értéke megegyezik-e a környezeti változó értékével. Ha a token értékei nem egyeznek meg, a rendszer naplózza és elutasítja a kérést. A párosítási token környezeti változó, valamint a modul és Kestrel közötti forgalom nem érhetők el szerveren kívüli helyről. A párosítási jogkivonat értékének ismerete nélkül a kiberbűnözők nem küldhetnek be olyan kéréseket, amelyek megkerülik az IIS Middleware-ben való ellenőrzést.
ASP.NET core modul megosztott IIS-konfigurációval
A ASP.NET core modul telepítője a TrustedInstaller-fiók jogosultságaival fut. Mivel a helyi rendszerfiók nem rendelkezik módosítási engedéllyel a megosztott IIS-konfiguráció által használt megosztási útvonalhoz, a telepítő hozzáférés-megtagadási hibát jelez, amikor megkísérli konfigurálni a modulbeállításokat a megosztásapplicationHost.config fájljában.
Megosztott IIS-konfiguráció használatakor kövesse az alábbi lépéseket:
- Tiltsa le az IIS megosztott konfigurációját.
- Indítsa el a telepítőt.
- Exportálja a frissített applicationHost.config fájlt a megosztásba.
- Engedélyezze újra az IIS megosztott konfigurációját.
Modulverzió és üzemeltetési csomag telepítőnaplói
A telepített ASP.NET core modul verziójának meghatározása:
- Az üzemeltetési rendszeren keresse meg a %windir%\System32\inetsrv fájlt.
- Keresse meg a aspnetcore.dll fájlt.
- Kattintson a jobb gombbal a fájlra, és válassza a Helyi menü Tulajdonságok parancsát .
- Válassza a Részletek lapot. A Fájl és a Termék verzió a modul telepített verzióját jelöli.
A modul üzemeltetési csomag telepítőnaplói a C:\Users\%UserName%\AppData\Local\Temp címen találhatók. A fájl neve dd_DotNetCoreWinSvrHosting__<timestamp>_000_AspNetCoreModule_x64.log.
Modul-, séma- és konfigurációs fájlhelyek
Modul
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
Schema
IIS
- %windir%\System32\inetsrv\config\schema\aspnetcore_schema.xml
IIS Express
- %ProgramFiles%\IIS Express\config\schema\aspnetcore_schema.xml
Konfiguráció
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
A fájlok megtalálhatók az aspnetcore keresésével az applicationHost.config fájlban.
További erőforrások
- ASP.NET Core telepítése Windows operációs rendszeren IIS segítségével
- ASP.NET Core-alkalmazások üzembe helyezése az Azure App Service-
-
ASP.NET Alapvető modul referenciaforrása [alapértelmezett ág (fő)]: Az Ág legördülő lista használatával válasszon ki egy adott kiadást (például
release/3.1). - IIS-modulok az ASP.NET Core platformmal