ASP.NET Core 모듈 구성 참조ASP.NET Core Module configuration reference

Luke Latham, Rick Anderson, 및 Sourabh ShirhattiBy Luke Latham, Rick Anderson, and Sourabh Shirhatti

이 문서 ASP.NET Core 응용 프로그램 호스팅에 대 한 ASP.NET Core 모듈을 구성 하는 방법에 자세히 설명 합니다.This document provides details on how to configure the ASP.NET Core Module for hosting ASP.NET Core applications. ASP.NET Core 모듈 및 설치 지침에 대 한 소개를 참조 하십시오.는 ASP.NET Core 모듈 개요합니다.For an introduction to the ASP.NET Core Module and installation instructions, see the ASP.NET Core Module overview.

Web.config 통해 구성Configuration via web.config

ASP.NET Core 모듈 사이트 또는 응용 프로그램을 통해 구성 된 web.config 파일을 자체 aspNetCore 내 구성 섹션 system.webServer합니다.The ASP.NET Core Module is configured via a site or application web.config file and has its own aspNetCore configuration section within system.webServer. 다음은 예제 web.config 파일는 Microsoft.NET.Sdk.Web SDK는 프로젝트에 대 한 게시 될 때 제공는 프레임 워크 종속 배포 에 대 한 자리 표시자와는 processPatharguments:Here's an example web.config file that the Microsoft.NET.Sdk.Web SDK will provide when the project is published for a framework-dependent deployment with placeholders for the processPath and arguments:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" 
        arguments="%LAUNCHER_ARGS%" 
        stdoutLogEnabled="false" 
        stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

web.config 입니다. 아래 예제는 자체 포함된 배포Azure 앱 서비스합니다.The web.config example below is for a self-contained deployment to the Azure App Service. 자세한 내용은 참조 를 IIS에 게시합니다.For more information, see Publishing to IIS. 참조 하위 응용 프로그램의 구성을 의 구성에 관련 된 중요 정보에 대 한 web.config 하위 응용 프로그램의에서 파일입니다.See Configuration of sub-applications for an important note pertaining to the configuration of web.config files in sub-applications.

<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath=".\MyApp.exe" 
        stdoutLogEnabled="false" 
        stdoutLogFile="\\?\%home%\LogFiles\stdout" />
  </system.webServer>
</configuration>

AspNetCore 요소의 특성입니다.Attributes of the aspNetCore element

특성Attribute 설명Description
processPathprocessPath

필수 문자열 특성입니다.Required string attribute.

HTTP 요청을 수신 하는 프로세스를 시작 하는 실행 파일 경로입니다.Path to the executable that will launch a process listening for HTTP requests. 상대 경로 지원 합니다.Relative paths are supported. 로 시작 하는 경로 경우 '.'를 경로 사이트 루트 기준 것으로 간주 됩니다.If the path begins with '.', the path is considered to be relative to the site root.

기본값은 없습니다.There is no default value.

인수arguments

선택적 문자열 특성입니다.Optional string attribute.

에 지정 된 실행 파일에 대 한 인수 processPath합니다.Arguments to the executable specified in processPath.

기본값은 빈 문자열입니다.The default value is an empty string.

startupTimeLimitstartupTimeLimit

선택적 정수 특성입니다.Optional integer attribute.

포트에서 수신 하는 프로세스가 시작 되는 파일에 대 한 모듈에서 대기 하는 시간 (초) 기간입니다.Duration in seconds that the module will wait for the executable to start a process listening on the port. 이 시간 제한을 초과 하는 모듈 프로세스를 중단 합니다.If this time limit is exceeded, the module will kill the process. 모듈에서 새 요청을 수신 하 고 계속 시도 응용 프로그램이 시작 되지 않는 한 이후 들어오는 요청에서 프로세스를 다시 시작 하는 경우 프로세스를 다시 시작 하려고 rapidFailsPerMinute 번호 마지막 롤링 분에 한 번입니다.The module will attempt to launch the process again when it receives a new request and will continue to attempt to restart the process on subsequent incoming requests unless the application fails to start rapidFailsPerMinute number of times in the last rolling minute.

기본값은 120입니다.The default value is 120.

shutdownTimeLimitshutdownTimeLimit

선택적 정수 특성입니다.Optional integer attribute.

기간 (초) 모듈 기다릴 정상적으로 종료 되는 파일에 대 한 경우는 app_offline.htm 파일이 검색 됩니다.Duration in seconds for which the module will wait for the executable to gracefully shutdown when the app_offline.htm file is detected.

기본값은 10입니다.The default value is 10.

rapidFailsPerMinuterapidFailsPerMinute

선택적 정수 특성입니다.Optional integer attribute.

에 지정 된 프로세스의 수를 지정 processPath 분당 충돌을 허용 합니다.Specifies the number of times the process specified in processPath is allowed to crash per minute. 이 제한을 초과 하는 나머지 분에서 프로세스 시작 모듈 중지 됩니다.If this limit is exceeded, the module will stop launching the process for the remainder of the minute.

기본값은 10입니다.The default value is 10.

requestTimeoutrequestTimeout

선택적 timespan 특성입니다.Optional timespan attribute.

ASP.NET Core 모듈 기다릴 ASPNETCORE_PORT % %를 수신 하는 프로세스에서 응답에 대 한 기간을 지정 합니다.Specifies the duration for which the ASP.NET Core Module will wait for a response from the process listening on %ASPNETCORE_PORT%.

기본값은 "00:02:00"입니다.The default value is "00:02:00".

stdoutLogEnabledstdoutLogEnabled

선택적 부울 특성입니다.Optional Boolean attribute.

True 이면 stdoutstderr 에 지정 된 프로세스에 대 한 processPath 에 지정 된 파일에 리디렉션됩니다 가 stdoutLogFile.If true, stdout and stderr for the process specified in processPath will be redirected to the file specified in stdoutLogFile.

기본값은 false입니다.The default value is false.

가 stdoutLogFilestdoutLogFile

선택적 문자열 특성입니다.Optional string attribute.

상대 또는 절대 파일 경로를 지정 stdoutstderr 에 지정 된 프로세스에서 processPath 기록 됩니다.Specifies the relative or absolute file path for which stdout and stderr from the process specified in processPath will be logged. 상대 경로 사이트의 루트를 기준으로 합니다.Relative paths are relative to the root of the site. 로 시작 하는 경로 '.'을 사이트 루트 기준 되며 다른 모든 경로 절대 경로로 간주 합니다.Any path starting with '.' will be relative to the site root and all other paths will be treated as absolute paths. 모든 폴더 경로에 제공 된 로그 파일을 만들 모듈에 대 한 순서에 있어야 합니다.Any folders provided in the path must exist in order for the module to create the log file. 프로세스 ID, 타임 스탬프 (yyyyMdhms), 파일 확장명 (.log) 밑줄로 구분 기호가 추가 됩니다 마지막 세그먼트는 가 stdoutLogFile 제공 합니다.The process ID, timestamp (yyyyMdhms), and file extension (.log) with underscore delimiters are added to the last segment of the stdoutLogFile provided.

기본값은 aspnetcore-stdout입니다.The default value is aspnetcore-stdout.

forwardWindowsAuthTokenforwardWindowsAuthToken 참 또는 거짓입니다.true or false.

True 이면 토큰 요청당 헤더로 ' MS ASPNETCORE WINAUTHTOKEN'ASPNETCORE_PORT % %를 수신 하는 자식 프로세스에 전달 됩니다.If true, the token will be forwarded to the child process listening on %ASPNETCORE_PORT% as a header 'MS-ASPNETCORE-WINAUTHTOKEN' per request. 것은 해당 프로세스를 요청에 따라이 토큰에 CloseHandle 호출의 책임입니다.It is the responsibility of that process to call CloseHandle on this token per request.

기본값은 true입니다.The default value is true.

disableStartUpErrorPagedisableStartUpErrorPage 참 또는 거짓입니다.true or false.

True 이면는 502.5-프로세스 오류 페이지는 표시 되지 않습니다, 그리고 및 502 상태 코드 페이지에 구성 된 프로그램 web.config 우선 적용 됩니다.If true, the 502.5 - Process Failure page will be suppressed, and the 502 status code page configured in your web.config will take precedence.

기본값은 false입니다.The default value is false.

환경 변수 설정Setting environment variables

ASP.NET Core 모듈에 지정 된 프로세스에 대 한 환경 변수를 지정할 수 있습니다는 processPath 하나 이상 지정 하 여 특성 environmentVariable 의 자식 요소는 environmentVariables 아래 컬렉션 요소는 aspNetCore 요소입니다.The ASP.NET Core Module allows you specify environment variables for the process specified in the processPath attribute by specifying them in one or more environmentVariable child elements of an environmentVariables collection element under the aspNetCore element. 이 섹션에 설정 된 환경 변수 보다 우선 시스템 환경 변수는 프로세스에 대 한 합니다.Environment variables set in this section take precedence over system environment variables for the process.

다음 예제에서는 두 개의 환경 변수를 설정합니다.The example below sets two environment variables. ASPNETCORE_ENVIRONMENT응용 프로그램의 환경을 구성 합니다 Development합니다.ASPNETCORE_ENVIRONMENT will configure the application's environment to Development. 개발자에 일시적으로이 값을 설정할 수 있습니다는 web.config 강제 파일은 개발자 예외 페이지 를 응용 프로그램 예외를 디버깅 하는 경우 로드 합니다.A developer may temporarily set this value in the web.config file in order to force the developer exception page to load when debugging an app exception. CONFIG_DIR사용자 정의 환경 변수의 예 개발자는 경로 구성 하는 응용 프로그램의 구성 파일을 로드 하는 시작 값을 읽을 코드를 기록 했습니다.CONFIG_DIR is an example of a user-defined environment variable, where the developer has written code that will read the value on startup to form a path in order to load the app's configuration file.

<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>

app_offline.htmapp_offline.htm

이름으로 파일을 배치 하는 경우 app_offline.htm 웹 응용 프로그램 디렉터리의 루트에 ASP.NET Core 모듈 하려고 응용 프로그램을 정상적으로 종료 되며 들어오는 요청 처리를 중지 합니다.If you place a file with the name app_offline.htm at the root of a web application directory, the ASP.NET Core Module will attempt to gracefully shutdown the app and stop processing incoming requests. 응용 프로그램 실행 되는 경우 shutdownTimeLimit 수 ASP.NET Core 모듈 시간 (초)을 실행 중인 프로세스를 중단 합니다.If the app is still running after shutdownTimeLimit number of seconds, the ASP.NET Core Module will kill the running process.

반면는 app_offline.htm 파일이 없으면 ASP.NET Core 모듈에서 요청에 응답의 내용을 다시 전송 하 여는 app_offline.htm 파일입니다.While the app_offline.htm file is present, the ASP.NET Core Module will respond to requests by sending back the contents of the app_offline.htm file. 한 번의 app_offline.htm 다음 요청 로드 한 다음 요청에 응답 하는 응용 프로그램, 파일은 제거 됩니다.Once the app_offline.htm file is removed, the next request loads the application, which then responds to requests.

시작 오류 페이지Start-up error page

ASP.NET Core 모듈에 백 엔드 프로세스 또는 백 엔드 프로세스 시작 하지만 구성된 된 포트에서 수신 하도록 실패를 시작 하지 못하는 경우 502.5 HTTP 상태 코드 페이지가 표시 됩니다.If the ASP.NET Core Module fails to launch the backend process or the backend process starts but fails to listen on the configured port, you will see an HTTP 502.5 status code page. 이 페이지를 표시 하지 않는 하 여 기본 IIS 502 상태 코드 페이지로 되돌리려면 사용은 disableStartUpErrorPage 특성입니다.To suppress this page and revert to the default IIS 502 status code page, use the disableStartUpErrorPage attribute. 사용자 정의 오류 메시지를 구성 하는 방법에 대 한 자세한 내용은 참조 하십시오. HTTP 오류 <httpErrors> 합니다.For more information on configuring custom error messages, see HTTP Errors <httpErrors>.

502 상태 페이지

로그 만들기 및 리디렉션Log creation and redirection

ASP.NET Core 모듈 리디렉션합니다 stdoutstderr 설정 하는 경우 디스크에 로그는 stdoutLogEnabledstdoutLogFile 의 특성은 aspNetCore 요소입니다.The ASP.NET Core Module redirects stdout and stderr logs to disk if you set the stdoutLogEnabled and stdoutLogFile attributes of the aspNetCore element. 에 있는 폴더는 stdoutLogFile 경로 로그 파일을 만들 모듈에 대 한 순서에 존재 해야 합니다.Any folders in the stdoutLogFile path must exist in order for the module to create the log file. 타임 스탬프 및 파일 확장명은 로그 파일을 만들 때 자동으로 추가 됩니다.A timestamp and file extension will be added automatically when the log file is created. 프로세스 재활용/를 다시 시작이 발생 하지 않으면 로그 회전 되지 않습니다.Logs are not rotated, unless process recycling/restart occurs. 것은 로그 사용할 디스크 공간을 제한 하는 호스팅 서비스 공급자의 책임입니다.It is the responsibility of the hoster to limit the disk space the logs consume. 사용 하 여 stdout 로그만 일반 응용 프로그램 로깅 목적으로 아닌와 응용 프로그램 시작 문제 해결을 위한 것이 좋습니다.Using the stdout log is only recommended for troubleshooting application startup issues and not for general application logging purposes.

프로세스 ID (PID), 타임 스탬프를 추가 하 여 로그 파일 이름이 구성 됩니다 (yyyyMdhms), 파일 확장명 (.log)의 마지막 세그먼트에는 stdoutLogFile 경로 (일반적으로 stdout *) 밑줄로 구분 합니다.The log file name is composed by appending the process ID (PID), timestamp (yyyyMdhms), and file extension (.log) to the last segment of the stdoutLogFile path (typically *stdout) delimited by underscores. 예를 들어 경우는 stdoutLogFile 로 끝나는 경로 stdout, 12시 05분: 02에서 8/10/2017에 만든 10652의 PID 사용 하 여 앱에 대 한 로그 파일 이름이 stdout_10652_20178101252.log합니다.For example if the stdoutLogFile path ends with stdout, a log for an app with a PID of 10652 created on 8/10/2017 at 12:05:02 has the file name stdout_10652_20178101252.log.

다음은 샘플 aspNetCore 구성 요소 stdout 로깅.Here's a sample aspNetCore element that configures stdout logging. stdoutLogFile 예제에 표시 된 경로 Azure 앱 서비스에 적합 합니다.The stdoutLogFile path shown in the example is appropriate for the Azure App Service. 로컬 경로 또는 네트워크 공유 경로 로컬 로깅 있습니다.A local path or network share path is acceptable for local logging. AppPool 사용자 id 제공 된 경로에 쓸 수 있는 권한이 있는지 확인 합니다.Confirm that the AppPool user identity has permission to write to the path provided.

<aspNetCore processPath="dotnet"
    arguments=".\MyApp.dll"
    stdoutLogEnabled="true"
    stdoutLogFile="\\?\%home%\LogFiles\stdout">
</aspNetCore>

IIS 사용 하 여 ASP.NET Core 모듈 구성 공유ASP.NET Core Module with an IIS Shared Configuration

ASP.NET Core 모듈 설치 관리자의 권한으로 실행 되는 시스템 계정.The ASP.NET Core Module installer runs with the privileges of the SYSTEM account. 설치 관리자가 액세스 거부 오류가에서 모듈 설정을 구성 하는 동안 적중지 것입니다 로컬 시스템 계정 IIS 공유 구성에 사용 되는 공유 경로 대 한 권한을 수정지 않습니다, 때문에 * applicationHost.config* 공유에 있습니다.Because the local system account does not have modify permission for the share path which is used by the IIS Shared Configuration, the installer will hit an access denied error when attempting to configure the module settings in applicationHost.config on the share.

지원 되지 않는 문제를 해결 하 고 설치 프로그램을 실행 IIS 공유 구성을 사용 하지 않도록 설정, 업데이트 된 내보내기는 applicationHost.config 는 공유에 파일을 다시 IIS 공유 구성을 사용 하도록 설정 합니다.The unsupported workaround is to disable the IIS Shared Configuration, run the installer, export the updated applicationHost.config file to the share, and re-enable the IIS Shared Configuration.

모듈, 스키마 및 구성 파일 위치Module, schema, and configuration file locations

모듈Module

IIS (x86/amd64):IIS (x86/amd64):

  • %windir%\System32\inetsrv\aspnetcore.dll%windir%\System32\inetsrv\aspnetcore.dll

  • %windir%\SysWOW64\inetsrv\aspnetcore.dll%windir%\SysWOW64\inetsrv\aspnetcore.dll

IIS Express (x86/amd64):IIS Express (x86/amd64):

  • %ProgramFiles%\IIS Express\aspnetcore.dll%ProgramFiles%\IIS Express\aspnetcore.dll

  • %ProgramFiles (x86) %\IIS Express\aspnetcore.dll%ProgramFiles(x86)%\IIS Express\aspnetcore.dll

스키마Schema

IISIIS

  • %windir%\System32\inetsrv\config\schema\aspnetcore_schema.xml%windir%\System32\inetsrv\config\schema\aspnetcore_schema.xml

IIS ExpressIIS Express

  • %ProgramFiles%\IIS Express\config\schema\aspnetcore_schema.xml%ProgramFiles%\IIS Express\config\schema\aspnetcore_schema.xml

구성Configuration

IISIIS

  • %windir%\System32\inetsrv\config\applicationHost.config%windir%\System32\inetsrv\config\applicationHost.config

IIS ExpressIIS Express

  • .vs\config\applicationHost.config.vs\config\applicationHost.config

검색할 수 있습니다 aspnetcore.dllapplicationHost.config 파일입니다.You can search for aspnetcore.dll in the applicationHost.config file. IIS express는 applicationHost.config 파일은 기본적으로 존재 하지 않습니다.For IIS Express, the applicationHost.config file won't exist by default. 파일을 만들 {응용 프로그램 루트}.vs\config Visual Studio 솔루션에서 모든 웹 응용 프로그램 프로젝트를 시작 합니다.The file is created at {application root}.vs\config when you start any web application project in the Visual Studio solution.