Aspnetcore: Inprocess ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ๋ฌธ์ œ

์— ๋งŒ๋“  2018๋…„ 12์›” 25์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dotnet/aspnetcore

์—ฌ๋ณด์„ธ์š”!
inprocess ํ˜ธ์ŠคํŒ… ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›น ์•ฑ์„ ํ˜ธ์ŠคํŒ…ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ ...
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
500.30์œผ๋กœ IIS ์‘๋‹ต.
ANCM ๋กœ๊ทธ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
HostingModel์„ OutOfProcess๋กœ ์ „ํ™˜ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ž…๋‹ˆ๋‹ค.

๋‚ด web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath=".\Dodo.ClientSite.exe" arguments="" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" hostingModel="InProcess">

         <handlerSettings>
                  <handlerSetting name="debugFile" value=".\aspnetcore-debug.log" />
                  <handlerSetting name="debugLevel" value="FILE,TRACE" />
              </handlerSettings>
      </aspNetCore>
   </system.webServer>
</configuration>

๋กœ๊ทธ

```
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalConfigurationChange 'MACHINE/WEBROOT/APPHOST/RU-DEV-GS-GSITE.EXT.DEV.DODOIS.COM'
[aspnetcorev2.dll] ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ '/LM/W3SVC/340/ROOT' ์ค‘์ง€ ์ค‘
[aspnetcorev2_inprocess.dll] ํŒŒ์ผ ๊ฐ์‹œ์ž ์Šค๋ ˆ๋“œ ์ค‘์ง€
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalStopListening
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::์ข…๋ฃŒ
[aspnetcorev2.dll] 'C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll'์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ID: 9476.. ํŒŒ์ผ ๋ฒ„์ „: 12.2.18316.0. ์„ค๋ช…: IIS ASP.NET Core ๋ชจ๋“ˆ V2. ์ปค๋ฐ‹: ce8cf65589734f82b0536c543aba5bd60d0a5a98.
[aspnetcorev2.dll] ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ hostfxr ๋งค๊ฐœ ๋ณ€์ˆ˜ ํ™•์ธ: '.\Dodo.ClientSite.exe' ์ธ์ˆ˜: '' ๊ฒฝ๋กœ: 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'
[aspnetcorev2.dll] ์•Œ๋ ค์ง„ dotnet.exe ์œ„์น˜: ''
[aspnetcorev2.dll] ํ”„๋กœ์„ธ์Šค ๊ฒฝ๋กœ '.\Dodo.ClientSite.exe'๊ฐ€ dotnet์ด ์•„๋‹ˆ๋ฏ€๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๋˜๋Š” ์ด์‹ํ˜•์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
[aspnetcorev2.dll] 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\Dodo.ClientSite.dll'์—์„œ application.dll ํ™•์ธ ์ค‘
[aspnetcorev2.dll] 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\hostfxr.dll'์—์„œ hostfxr.dll ํ™•์ธ ์ค‘
[aspnetcorev2.dll] hostfxr.dll์€ 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\hostfxr.dll'์—์„œ ๋กœ์ปฌ ์•ฑ์„ ์ฐพ์•˜์œผ๋ฉฐ, ๋Ÿฐ์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ด์‹ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
[aspnetcorev2.dll] 'dotnet'์—์„œ dotnet.exe์— ๋Œ€ํ•œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ ํ™•์ธ
[aspnetcorev2.dll] where.exe๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ dotnet.exe๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
[aspnetcorev2.dll] where.exe ํ˜ธ์ถœ์ด ๋ฐ˜ํ™˜๋จ: 'C:\Program Filesdotnetdotnet.exe
C:\ํ”„๋กœ๊ทธ๋žจ ํŒŒ์ผ(x86)dotnetdotnet.exe
'
[aspnetcorev2.dll] isX64=1๋กœ ๊ฐ์ง€๋œ ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค ๋น„ํŠธ ์ˆ˜ ์œ ํ˜•
[aspnetcorev2.dll] ํ•ญ๋ชฉ 'C:\Program Filesdotnetdotnet.exe' ์ฒ˜๋ฆฌ ์ค‘
[aspnetcorev2.dll] ๋ฐ”์ด๋„ˆ๋ฆฌ ์œ ํ˜• 6
[aspnetcorev2.dll] 'C:\Program Filesdotnetdotnet.exe'์—์„œ where.exe ํ˜ธ์ถœ์„ ํ†ตํ•ด dotnet.exe๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
[aspnetcorev2.dll] 'C:\Program Filesdotnetdotnet.exe'์—์„œ hostfxr.dll์— ๋Œ€ํ•œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ ํ™•์ธ
[aspnetcorev2.dll] hostfxr.dll์€ 'C:\Program Filesdotnet\host\fxr\2.2.0\hostfxr.dll'์— ์žˆ์Šต๋‹ˆ๋‹ค.
[aspnetcorev2.dll] ๊ตฌ๋ฌธ ๋ถ„์„๋œ hostfxr ์˜ต์…˜: dotnet ์œ„์น˜: 'C:\Program Filesdotnetdotnet.exe' hostfxr ๊ฒฝ๋กœ: 'C:\Program Filesdotnet\host\fxr\2.2.0\hostfxr.dll' ์ธ์ˆ˜:
[aspnetcorev2.dll] ์ธ์ˆ˜[0] = 'C:\Program Filesdotnetdotnet.exe'
[aspnetcorev2.dll] ์ธ์ˆ˜[1] = 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\Dodo.ClientSite.dll'
[aspnetcorev2.dll] c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\commonlib\fileoutputmanager.dll cpp:142 LastError๋กœ ์ž‘์—… ์‹คํŒจ: 32 HR: 0x80070020
[aspnetcorev2.dll] ์š”์ฒญ ์ฒ˜๋ฆฌ๊ธฐ ๋กœ๋“œ: 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\aspnetcorev2_inprocess.dll'
[aspnetcorev2.dll] ํ•ธ๋“ค๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ฑ
[aspnetcorev2_inprocess.dll] 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\aspnetcorev2_inprocess.dll'์— ๋Œ€ํ•œ ๋กœ๊ทธ ์ดˆ๊ธฐํ™” ์ค‘. ํ”„๋กœ์„ธ์Šค ID: 9476.. ํŒŒ์ผ ๋ฒ„์ „: 12.2.18316.0. ์„ค๋ช…: IIS ASP.NET Core ๋ชจ๋“ˆ V2 ์š”์ฒญ ์ฒ˜๋ฆฌ๊ธฐ. ์ปค๋ฐ‹: ce8cf65589734f82b0536c543aba5bd60d0a5a98.
[aspnetcorev2_inprocess.dll] ์ดˆ๊ธฐํ™” ๋Œ€๊ธฐ ์ค‘
[aspnetcorev2_inprocess.dll] ํ”„๋กœ์„ธ์Šค ๋‚ด ์ž‘์—…์ž ์Šค๋ ˆ๋“œ ์‹œ์ž‘
[aspnetcorev2_inprocess.dll] ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ hostfxr ๋งค๊ฐœ ๋ณ€์ˆ˜ ํ™•์ธ: '.\Dodo.ClientSite.exe' ์ธ์ˆ˜: '' ๊ฒฝ๋กœ: 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'
[aspnetcorev2_inprocess.dll] ์•Œ๋ ค์ง„ dotnet.exe ์œ„์น˜: 'C:\Program Filesdotnetdotnet.exe'
[aspnetcorev2_inprocess.dll] ํ”„๋กœ์„ธ์Šค ๊ฒฝ๋กœ '.\Dodo.ClientSite.exe'๊ฐ€ dotnet์ด ์•„๋‹ˆ๋ฏ€๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๋˜๋Š” ์ด์‹ํ˜•์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
[aspnetcorev2_inprocess.dll] 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\Dodo.ClientSite.dll'์—์„œ application.dll ํ™•์ธ ์ค‘
[aspnetcorev2_inprocess.dll] 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\hostfxr.dll'์—์„œ hostfxr.dll ํ™•์ธ ์ค‘
[aspnetcorev2_inprocess.dll] hostfxr.dll์€ 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\hostfxr.dll'์—์„œ ๋กœ์ปฌ ์•ฑ์„ ์ฐพ์•˜๊ณ , ๋Ÿฐ์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ด์‹ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
[aspnetcorev2_inprocess.dll] 'C:\Program Filesdotnetdotnet.exe'์—์„œ hostfxr.dll์— ๋Œ€ํ•œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ ํ™•์ธ
[aspnetcorev2_inprocess.dll] hostfxr.dll์€ 'C:\Program Filesdotnet\host\fxr\2.2.0\hostfxr.dll'์— ์žˆ์Šต๋‹ˆ๋‹ค.
[aspnetcorev2_inprocess.dll] ๊ตฌ๋ฌธ ๋ถ„์„๋œ hostfxr ์˜ต์…˜: dotnet ์œ„์น˜: 'C:\Program Filesdotnetdotnet.exe' hostfxr ๊ฒฝ๋กœ: 'C:\Program Filesdotnet\host\fxr\2.2.0\hostfxr.dll' ์ธ์ˆ˜:
[aspnetcorev2_inprocess.dll] ์ธ์ˆ˜[0] = 'C:\Program Filesdotnetdotnet.exe'
[aspnetcorev2_inprocess.dll] ์ธ์ˆ˜[1] = 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\Dodo.ClientSite.dll'
[aspnetcorev2_inprocess.dll] ๊ด€๋ฆฌ๋˜๋Š” ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. -1073741819
[aspnetcorev2_inprocess.dll] ์ข…๋ฃŒ ์‹œํ€€์Šค 1 ์‹œ์ž‘
[aspnetcorev2_inprocess.dll] Clr ์Šค๋ ˆ๋“œ ๋Œ€๊ธฐ ์ข…๋ฃŒ: clrThreadExited: 1
[aspnetcorev2_inprocess.dll] c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\commonlib\fileoutputmanager.dll cpp:142 LastError๋กœ ์ž‘์—… ์‹คํŒจ: 32 HR: 0x80070020
[aspnetcorev2_inprocess.dll] ์ด๋ฒคํŠธ ๋กœ๊ทธ: ๋ฌผ๋ฆฌ์  ๋ฃจํŠธ 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'์ด ์žˆ๋Š” '์‘์šฉ ํ”„๋กœ๊ทธ๋žจ '/LM/W3SVC/340/ROOT'์—์„œ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๊ด€๋ฆฌ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. , ์˜ˆ์™ธ ์ฝ”๋“œ = '0xc0000005'. ์ž์„ธํ•œ ๋‚ด์šฉ์€ stderr ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.'
์ด๋ฒคํŠธ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€ ์ข…๋ฃŒ.
[aspnetcorev2_inprocess.dll] ํ”„๋กœ์„ธ์Šค ๋‚ด ์ž‘์—…์ž ์Šค๋ ˆ๋“œ ์ค‘์ง€
[aspnetcorev2_inprocess.dll] CLR ์ค‘์ง€
[aspnetcorev2_inprocess.dll] ์ด๋ฒคํŠธ ๋กœ๊ทธ: ๋ฌผ๋ฆฌ์  ๋ฃจํŠธ 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'์ด ์žˆ๋Š” '์‘์šฉ ํ”„๋กœ๊ทธ๋žจ '/LM/W3SVC/340/ROOT'์—์„œ clr์„ ๋กœ๋“œํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ ๊ด€๋ฆฌ๋˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. CLR ์ž‘์—…์ž ์Šค๋ ˆ๋“œ๊ฐ€ ์กฐ๊ธฐ์— ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค'
์ด๋ฒคํŠธ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€ ์ข…๋ฃŒ.
[aspnetcorev2_inprocess.dll] c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\inprocessrequesthandler\inprocessapplication์—์„œ ์˜ˆ์™ธ 'InvalidOperationException'์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. cpp:350
[aspnetcorev2_inprocess.dll] ์‹คํŒจํ•œ HRESULT๊ฐ€ ๋ฐ˜ํ™˜๋จ: 0x8007023e at c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\inprocessrequesthandler\dllmain. cpp:120
[aspnetcorev2_inprocess.dll] ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'์—์„œ app_offline ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์ž‘
[aspnetcorev2_inprocess.dll] ํŒŒ์ผ ๊ฐ์‹œ์ž ์Šค๋ ˆ๋“œ ์‹œ์ž‘
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalConfigurationChange 'MACHINE/WEBROOT/APPHOST/RU-DEV-GS-GSITE.EXT.DEV.DODOIS.COM'
[aspnetcorev2.dll] ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ '/LM/W3SVC/340/ROOT' ์ค‘์ง€ ์ค‘
[aspnetcorev2_inprocess.dll] ํŒŒ์ผ ๊ฐ์‹œ์ž ์Šค๋ ˆ๋“œ ์ค‘์ง€
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalStopListening
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::์ข…๋ฃŒ
````

area-servers servers-iis

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๊ท€ํ•˜์˜ Program.Main์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ CurrentDirectory ๋ฌธ์ œ์ธ #4206 ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ถŒ์žฅ๋˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/aspnet/Docs/blob/master/aspnetcore/host-and-deploy/aspnet-core-module/samples_snapshot/2.x/CurrentDirectoryHelpers.cs. ์ด๊ฒƒ์€ ํŒจ์น˜์—์„œ ์ˆ˜์ •๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ œ์•ˆ๋œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ณ  ํ˜„์žฌ ๋ฒ„์ „ .Net Core 2.2์—์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. InProcess๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜(500.30์˜ IIS ์‘๋‹ต)๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋กœ๊ทธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฐ˜ํ™˜๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋™์ผํ•œ ๋ฌธ์ œ์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์‹œ์Šคํ…œ์—์„œ IIS ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด CurrentDirectoryHelper.cs๋ฅผ ๋‚ด ํ”„๋กœ์ ํŠธ์— ๋ณต์‚ฌํ•˜๊ณ  SetBasePath๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์ „์— Program.cs์—์„œ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

logger.LogWarning($"Applying Patch to fix Current Directory issue. Current Directory: {Environment.CurrentDirectory}"); //TODO: the line below can be removed when the bug with InProcess method is fixed (more details, follow the class definition and read the comments) CurrentDirectoryHelpers.SetCurrentDirectory(); logger.LogWarning($"Fix applied. Current Directory now is: {Environment.CurrentDirectory}");
์ˆ˜์ • ์‚ฌํ•ญ์„ ๊ทธ๋Œ€๋กœ ์ ์šฉํ•ด๋„ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
OutOfProcess๋กœ ์‹คํ–‰ ์ค‘์ด๊ณ  IIS Express์—์„œ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ œ๋Œ€๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ ์ด ์ผ์„ ๋„์™€์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  3 ๋Œ“๊ธ€

๊ท€ํ•˜์˜ Program.Main์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ CurrentDirectory ๋ฌธ์ œ์ธ #4206 ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ถŒ์žฅ๋˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/aspnet/Docs/blob/master/aspnetcore/host-and-deploy/aspnet-core-module/samples_snapshot/2.x/CurrentDirectoryHelpers.cs. ์ด๊ฒƒ์€ ํŒจ์น˜์—์„œ ์ˆ˜์ •๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ž์œ ๋กญ๊ฒŒ ์žฌ๊ฐœํ•˜์‹ญ์‹œ์˜ค.

๊ท€ํ•˜์˜ Program.Main์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ CurrentDirectory ๋ฌธ์ œ์ธ #4206 ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ถŒ์žฅ๋˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/aspnet/Docs/blob/master/aspnetcore/host-and-deploy/aspnet-core-module/samples_snapshot/2.x/CurrentDirectoryHelpers.cs. ์ด๊ฒƒ์€ ํŒจ์น˜์—์„œ ์ˆ˜์ •๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ œ์•ˆ๋œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ณ  ํ˜„์žฌ ๋ฒ„์ „ .Net Core 2.2์—์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. InProcess๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜(500.30์˜ IIS ์‘๋‹ต)๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋กœ๊ทธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฐ˜ํ™˜๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋™์ผํ•œ ๋ฌธ์ œ์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์‹œ์Šคํ…œ์—์„œ IIS ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด CurrentDirectoryHelper.cs๋ฅผ ๋‚ด ํ”„๋กœ์ ํŠธ์— ๋ณต์‚ฌํ•˜๊ณ  SetBasePath๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์ „์— Program.cs์—์„œ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

logger.LogWarning($"Applying Patch to fix Current Directory issue. Current Directory: {Environment.CurrentDirectory}"); //TODO: the line below can be removed when the bug with InProcess method is fixed (more details, follow the class definition and read the comments) CurrentDirectoryHelpers.SetCurrentDirectory(); logger.LogWarning($"Fix applied. Current Directory now is: {Environment.CurrentDirectory}");
์ˆ˜์ • ์‚ฌํ•ญ์„ ๊ทธ๋Œ€๋กœ ์ ์šฉํ•ด๋„ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
OutOfProcess๋กœ ์‹คํ–‰ ์ค‘์ด๊ณ  IIS Express์—์„œ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ œ๋Œ€๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ ์ด ์ผ์„ ๋„์™€์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰