'machine.config'에 해당되는 글 2건

Programming/.NET

ASP.NET에서는 machine.config나 web.config파일에 대해 프로그래밍으로 직접 설정내용을 읽거나 추가/수정이 가능한 API를 제공하고 있습니다. 이들 API들은 System.Configuration 네임스페이스 아래에 있으며 사용할 수 있는 클래스로는 다음과 같은 것들이 있습니다.

 

 AppSettingsSection

 <appSettings> 요소

 ConnectionStringsSettings

 <connectionStrings> 요소

 ProtectedConfigurationSection

 <protectedConfiguration> 요소

 ProtectedDataSection

 <protectedData> 요소

 AuthenticationSection

 <authentication> 요소

 AuthorizationSection

 <authorization> 요소

 CompilationSection

 <compilation> 요소

 CustomErrorsSection

 <customErros> 요소

 FormsAuthenticationConfiguration

 <forms> 요소

 GlobalizationSection

 <globalization> 요소

 HttpHandlersSection

 <httpHandlers> 요소

 HttpModulesSection

 <httpModules> 요소

 HttpRuntimeSection

 <httpRuntime> 요소

 MachineKeySection

 <machineKey> 요소

 MembershipSection

 <membership> 요소

 PagesSection

 <pages> 요소

 ProcessModelSection

 <processModel> 요소

 WebPartsSection

 <webParts> 요소

 

위 클래스들을 사용하면 각 이름에 맞는 설정구성에 대해 접근및 추가, 삭제등을 수행할 수 있습니다.  예를 들어 연결정보가 설정된 ConnectionStrings 요소의 값들을 모두 가져오려면 다음과 같이 처리할 수 있으며

 

foreach (ConnectionStringSettings con in System.Web.Configuration.WebConfigurationManager.ConnectionStrings)
    Response.Write(con.ConnectionString + "<br />");

 

반면 연결정보에 설정내용을 추가하기 위해서는 아래 절차를 거치면 됩니다.

 

ConnectionStringSettings css = new ConnectionStringSettings("mssqldb", "Data Source=localhost;Initial Catalog=testdb;User ID=sa;Password=12345;Persist 

Security Info=True;");

Configuration con = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
con.ConnectionStrings.ConnectionStrings.Add(css);
con.Save();

 

참고로 Web.config대신 machine.config를 열려면 System.Configuration.ConfigurationManager의 OpenMachineConfiguration메소드를 사용해야 합니다.

 

Configuration c = System.Configuration.ConfigurationManager.OpenMachineConfiguration();
foreach (string con in c.SectionGroups)
    Response.Write(con);

 

만일 로컬이 아닌 원격지 서버의 설정파일정보를 가져와야 한다면 OpenWebConfiguration메소드를 확장하여 원격서버를 지정하십시오.

 

Configuration c = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/", "test.server.co.kr");
ConfigurationSection cs = c.GetSection("connectionStrings");

 

설정파일의 설정내용은 기본적으로 사람이 읽을 수 있는 형태로 저장되고 관리되었습니다. 때문에 아이디와 비밀번호같은 민감정보는 별도로 암호화하여 관리할 수 있는 방법이 필요한데 이와 관련해 ASP.NET에서는 aspnet_regiis.exe 도구를 제공하고 있습니다.

 

예들 들어 web.config파일안에 설정된 연결문자열 정보를 보면 문자열 내부에 User ID와 Password로 비밀번호가 그대로 노출됨을 알 수 있습니다. 물론 그렇다고 해서 외부의 사용자가 해당 파일을 열어볼 수 있는것은 아니지만 직접 파일을 열어보는 경우까지도 보호가 필요하다면 aspnet_regiis를 다음과 같이 활용할 수 있습니다.

 

aspnet_regiis.exe -pef "connectionStrings" "C:\interup\testweb"

 

connectionStrings는 실제 암호화를 적용할 설정요소를 의미하며 뒤이어 오는 PATH는 web.config가 존재하는 폴더입니다.

 

암호화를 수행하고 나면 다음과 비슷한 결과를 볼 수 있습니다.

 

<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
  <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
    xmlns="http://www.w3.org/2001/04/xmlenc#">
    <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
      <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
        <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
          <KeyName>Rsa Key</KeyName>
        </KeyInfo>
        <CipherData>
          <CipherValue>nhv88Uv72+z+</CipherValue>
        </CipherData>
      </EncryptedKey>
    </KeyInfo>
    <CipherData>
      <CipherValue>/p9unppHlaCtFaAbtYQJFIjdqL7izI/3g9ZRp4SN93V</CipherValue>
    </CipherData>
  </EncryptedData>
</connectionStrings>

 

 

설정값을 가져올때 이렇게 암호화된 내용을 어떻게 복호화하여 가져올 수 있는지에 대해서는 고민할 필요가 없습니다. 이미 해본것처럼 API를 통해 설정정보를 가져오기만 하면 자동으로 복호화를 수행한 결과를 가져올 것입니다.

 

반대로 복호화를 수행하려면 -pdf 옵션을 사용합니다.

0 0
Programming/.NET

ASP.NET 에서 구성이나 설정사항에 관한 관리는 machine.config와 web.config라는 XML파일에 정의되며 이들 파일은 .NET Framework설치시 '\Windows\Microsft.NET\Framework\[Version]\Config' 폴더에 존재하게 됩니다.

 

 1. 파일구성

 

해당 폴더를 열어보면 machine.config나 web.config이 보일 것입니다. machine.config는 서버상에 존재하는 모든 응용프로그램에 공통적으로 적용하기 위한 설정정보를 가지고 있으며 web.config는 응용프로그램 단위로 적용하기 위한 설정정보를 가지고 있습니다.

 

이외에 config.comments와 config.default파일이 존재함을 알 수 있는데 comments파일은 각 설정정보에 관한 코멘트가 들어가 있고 default파일은 config파일의 복사본파일입니다. default파일은 예를 들어 설정이 잘못되어 초기상태로 되돌리고 싶을때 잘못된 config파일을 삭제하고 default를 기본 config파일로 변경하여 설정을 초기상태로 되돌리는데 사용될 수 있습니다. 참고로 comments와 default는 실제 프로그램의 동작에 적용되지 않는 파일입니다.

 

web_xxxxx.config 형식의 파일, 예를 들어 web_hightrust.config와 같은 파일은 신뢰수준을 정의하는 파일입니다. ASP.NET의 기본적인 신뢰수준은 Full 신뢰수준으로서 web.config를 보면 어떤 설정이 적용되어 있는지 확인할 수 있습니다.

 

<location allowOverride="true">
    <system.web>
        <securityPolicy>
            <trustLevel name="Full" policyFile="internal" />
            <trustLevel name="High" policyFile="web_hightrust.config" />
            <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
            <trustLevel name="Low"  policyFile="web_lowtrust.config" />
            <trustLevel name="Minimal" policyFile="web_minimaltrust.config" />
        </securityPolicy>
        <trust level="Full" originUrl="" />
        <fullTrustAssemblies>
        ------------------------------------
        </fullTrustAssemblies>
        <partialTrustVisibleAssemblies />
    </system.web>
</location>

 

만약 신뢰수준을 변경하려 한다면 location 섹션의 allowOverride 속성을 false로 설정하고 trust 섹션의 level속성을 원하는 수준으로 변경하면 됩니다. 현재는 level이 Full로 되어 있는데 trustLevel의 name속성이 Full인것에 따라 policyFile이 internal로 적용될 것입니다. internal은 ASP.NET의 CAS(Code Access Security) 즉, 프로그램이 만들어진 것에 따라 결정됨을 의미합니다.

 

만약 신뢰수준을 변경하면 그에 맞는 policyFile이 적용되는데 각 파일은 개별적인 실행권한이 명시되어 있습니다. 예를 들어 web_hightrust.config에 보면

 

<IPermission
        class="RegistryPermission"
        version="1"
        Unrestricted="true"
/>

 

이러한 설정이 들어가 있는데 이는 레지스트리에 관한 권한이 부여되어 있음을 의미합니다.

 

참고로 config설정파일은 .NET Framework의 버전별로 2개 이상이 존재할 수 있습니다. 이 말은 각 버전별로 다른 구성설정이 적용될 수 있다는 것을 뜻합니다.

 

web.config의 경우 ASP.NET응용프로그램을 생성하면 프로젝트폴더에 자동으로 생성되는것을 확인할 수 있습니다. 보통 이러한 형태의 web.config파일은 독립적인 설정정보를 가지게 되지만 기본은 부모 web.config로 부터 상속되며 이 상속되는 설정은 각각의 web.config에서 필요에 따라 재정의가 가능합니다. 하지만 만일 최상위 web.config에서 allowOverride속성을 false로 하면 상속이 차단될 수 있습니다.

 

만약 프로그램이 동작중인데 설정파일의 내용이 변경되면 ASP.NET에서는 이를 자동으로 감지하여 새로운 구성정보를 읽어들이고 그에 맞는 프로그램의 도메인을 신규로 생성합니다. 기존 프로그램의 도메인은 모든 요청이 만료되면 자등으로 파기됩니다.

 

 2. 설정

 

(1) ConnectionStrings

 

DB와 같은 연결문자열 정보를 설정합니다.

 

<connectionStrings>
  <add name="db" connectionString="server=localhost;uid=sa;pwd=1234;daabase=testdb"/>
</connectionStrings>

 

설정 내용은 다음과 같은 방법으로 가져올 수 있습니다.

 

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString);

 

(2) SesstionState

 

세션을 어디에 저장할지에 대한 세션저장소를 설정합니다.

 

<sessionState mode="StateServer" cookieless="false" stateConnectionString=

"tcpip=192.168.0.1:42424" stateNetworkTimeout="60">

 

mode속성은 세션을 어디에 저장할지를 설정하는 속성입니다. 여기에는 Off, InProc, StateServer, SQLServer, Custom등을 설정할 수 있는데 StateServer와 SQLServer는 out-of-process 즉, ASP.NET의 프로세스외부로 세션을 저장하는 설정입니다.

 

만약 mode를 StateServer로 설정했다면 해당 서버에 ASP.NET State Service라는 서비스가 구동되어야 합니다. 이 설정은 윈도우의 제어판->서비스에서 'ASP.NET State Service'항목을 찾아 서비스를 시작하거나 아래 명령을 내려 서비스를 구동할 수 있습니다.

 

net start aspnet_state

 

cookieless는 HTTP를 통해 세션을 관리할 경우 설정하며 timeout으로 세션의 수명주기를 설정할 수 있습니다.

 

stateConnectionString은 mode가 StateServer일때 해당 서버와 통신하기 위한 문자열을 지정하는 곳인며 sqlConnectionString은 mode가 SQLServer인경우에 서버로의 연결문자열을 설정하게 됩니다. 이때 연결문자열은 ConnectionString의 값을 다음과 같이 참조할 수 있습니다.

 

<sessionState mode="SQLServer" sqlConnectionString="db">

stateNetworkTimeout은 StateServer에 세션을 저장하려고 시도할때의 타임아웃시간입니다.

 

SesstionState는 web.config의 system.web하위에 설정됩니다.

 

(3) Compilation

 

ASP.NET은 최초 프로그램이 요청될때 프로그램과 관련된 소스나 기타 리소스파일등이 동적으로 컴파일되어 코드캐시에 저장한뒤 서비스를 시작하게 됩니다. 만약 변경사항이 발생하면 기존 컴파일내용을 모두 무효화하고 자동적으로 재컴파일을 수행합니다.

 

이러한 컴파일동작은 Compilation으로 system.web하위에 다음과 같이 설정할 수 있습니다.

 

<compilation batch="true"></compilation>

 

compilation에 설정가능한 속성은 아래와 같습니다.

 

 batch

 일괄처리여부를 설정합니다. 기본값은 true입니다.

 maxBatchSize

 일괄처리로 컴파일하는 최대 페이지수를 설정합니다. 기본값은 1000입니다.

 maxBatchGeneratedFileSize

 일괄처리로 컴파일하는 어셈블리의 최대크기를 설정합니다. 기본값은 1000kb입니다. 

 batchTimeout

 일괄처리로 컴파일하는 시간을 설정합니다. 기본값은 15초입니다.

 optimizeComilations

 동적 컴파일시 전체를 대상으로 할지 변경된 부분만 대상으로 할지를 지정합니다. False는 전체 True는 일부를 의미합니다.

 debug

 릴리즈, 디버그 어셈블리의 컴파일 여부를 설정합니다.

 defaultLanguage

 동적컴파일에 사용할 프로그램 언어를 설정합니다. 기본값은 VB입니다.

 explicit

 비주얼 베이직 코드의 explicit 컴파일 옵션여부를 설정합니다. 기본값은 true입니다.

 numRecompilesBeforeAppRestart

 리소스 동적재컴파일 횟수를 지정합니다. 기본값은 15회입니다.

 strict

 비주얼 베이직 코드의 strict 컴파일 옵션여부를 설정합니다. 기본값은 true입니다.

 tempDirectory

 컴파일을 위한 임시디렉토리를 지정합니다. 기본값은 Windows\Microsoft.NET\Framework\[Version]\Temporary ASP.NET 폴더입니다.

 assemblies

 컴파일 처리 지시문을 설정합니다.

 buildproviders

 리소스파일을 컴파일하는데 사용되는 빌드공급자를 직접설정합니다.

 folderLevelBuildProviders

 build provider가 특정 폴더에 있는 사용자 정의 리소스파일을 컴파일할때 사용될지 여부를 설정합니다.

 expressionBuilders

 컴파일할때 사용될 리소스문자열을 지정합니다.

 codeSubDirectories

 런타임에 컴파일할 파일이 포함된 하위 디렉토리를 설정합니다.

 

(4) customErrors

 

ASP.NET에서 오류가 발생할 경우 오류관련 페이지를 보여주기 위해 설정하는 부분입니다.

 

<customErrors defaultRedirect="[url]" mode="On">
  <error statusCode="404" redirect="[url]"/>
</customErrors>

 

기본적으로 오류가 발생하면 defaultRedirect에 지시한 url의 페이지를 보여줍니다. 하지만 만약 오류코드의 내용이 404라면 여기에 지정한 redirect의 url페이지를 보여주게 됩니다.

 

mode는 사용자정의 오류페이지를 보여줄지를 지정하는 것으로 Off면 해당 설정을 해제합니다. 이 속성의 RemoteOnly값은 원격클라이언트에만 오류페이지를 보여주도록 합니다.

 

(5) authentication

 

ASP.NET 사용자 인증관련 설정입니다.

 

<authentication mode="Forms"></authentication>

 

mode 속성을 Windows로 지정하면 윈도우인증을 사용하게 됩니다. 이러한 인증은 웹서버에 접속이 가능한 윈도우계정을 통해 인증을 수행하는 것입니다.

 

mode 속성을 Forms로 하면 프로그램에서 직접 사용자를 구성하고 해당 사용자에 대한 인증을 처리할 수 있게 됩니다. 가장 많이 사용하는 인증방식으로 사용할 수 있는 속성도 다음과 같이 다양하게 존재합니다.

 

 name

 인증쿠키이름을 설정합니다. 기본값은 .ASPXAUTH입니다.

 loginUrl

 로그인시도시 표시될 페이지를 URL로 설정합니다.

 protection

 인증쿠키에 적용되는 암호화방식을 지정합니다. Encryption은 3DES 알고리즘으로 암호화를 수행하도록 하며 Validation은 암호화하지 않지만 전송과정에서 쿠키의 변조여부를 확인합니다. All은 Encryption과 Validation모두를 수행하도록 합니다.

 timeout

 분단위로 쿠키만료시간을 설정합니다. 기본값은 30분입니다.

 path

 쿠키의 경로를 지정합니다.

 requireSSL

 폼인증수행시 HTTPS연결여부를 지정합니다.

 slidingExpiration

 쿠키 timeout의 갱신여부를 지정합니다.

 cookieless

 쿠키사용방식을 지정합니다.

 defaultUrl

 Login이후 리다이렉션될 URL을 지정합니다.

 ticketCompatibilityMode

 Framework20은 티켓만료날짜에 로컬시간을, Framework40은 UTC를 사용합니다.

 domain

 도메인이름문자열을 설정합니다. 이 설정은 여러 사이트에서 인증쿠키를 공유하고자 할때 사용합니다.

 

(6) anonymousIdentification

 

익명사용자를 식별해야할 필요가 있는경우의 설정입니다.

 

<anonymousIdentification enabled="true" />

 

anonymousIdentification 설정의 enabled는 익명사용자설정에 대한 활성화 여부를 지정합니다. 그 외에 해당 설정에서 변경할 수 있는 속성은 authentication 설정의 속성과 일치합니다.

 

이 설정은 system.web하위에 위치해야 합니다.

 

(7) authorization

 

권한부여에 관한 설정입니다.

 

<authorization>
  <allow users="*" roles="" verbs="" />
  <deny users="?" roles="" verbs="" />
</authorization>

 

allow에는 허용할 사용자, 그룹 또는 전송방식(GET등.)을 설정하고 deny는 거부할 대상을 지정합니다.

 

대상은 ID나 그룹에 대한 명칭이 올 수 있고 2개 이상인 경우에는 ,로 구분하여 지정합니다. 이 외에 사용할 수 있는 특수문자로는 *와 ?가 있는데 *은 모든 사용자를 ?는 익명사용자를 뜻합니다.

 

해당 설정이 존재하는 web.config를 특정 aspx같은 페이지와 같은 위치에 두면 그 위치의 모든 URL에 대한 접근통제를 적용하게 되며

 

<location path="tmp">
  <system.web>
    <authentication>
      <allow users="" roles="" verbs="" />
      <deny users="" roles="" verbs="" />
    </authentication>
  </system.web>
</location>

 

위와 같이 location 요소하위에 권한설정을 하게 되면 location에 지정한 폴더를 대상으로 접근통제를 적용하게 됩니다. 단, location의 path속성에 tmp와 같은 폴더가 아닌 tmp\aaa.aspx 와 같은 페이지를 지정하면 해당 페이지만 접근통제의 대상이 됩니다.

 

(8) pages

 

ASP.NET 페이지의 동작에 관한 구성설정입니다.

 

<pages buffer="true" validateRequest="true"></pages>

 

pages 요소에 적용가능한 속성은 아래와 같습니다.

 

 buffer

 페이지를 전송할때 버퍼링여부를 설정합니다.

 enableSessionState

 세션상태의 활성화여부를 설정합니다.

 enableViewState

 뷰 상태 활성화 여부를 설정합니다.

 autoEventWireup

 Load나 Error와 같은 이벤트의 자동설정여부를 지정합니다.

 smartNavigation

 익스플로러 브라우저에만 적용되는 속성입니다. 이 값이 true이면 포스트백요청시 전체브라우저가 아닌 변경된 부분만을 다시 생성하도록 합니다.

 maintainScrollPositionOnPostback

 포스트백이후 페이지가 표시될때 이전의 스크롤지점으로 위치시킬지 여부를 지정합니다.

 masterPageFile

 해당 페이지의 마스터페이지경로를 설정합니다.

 theme

 페이지의 테마를 설정합니다.

 styleSheetTheme

 CSS를 통한 테마를 설정합니다.

 maxPageStateFieldLength

 페이지의 ViewState를 몇개의 조각으로 분리할지를 지정합니다. 기본값은 -1인데 ViewState가 1개임을 의미합니다.

 pageBaseType

 페이지의 기본 클래스를 지정합니다. 보통 페이지의 cs파일에 있는 클래스가 지정됩니다.

 userControlBaseType

 사용자 컨트롤사용시 기본 클래스를 지정합니다.

 validateRequest

 페이지의 유효성여부를 점검할지 여부를 설정합니다. 스크립트 공격과 같은 잠재적 위협을 차단합니다.

 namespaces

 컴파일된 어셈블리를 참조하기 위한 설정입니다.

 compilationMode

 컴파일방법을 설정합니다.

 viewStateEncryptionMode

 ViewState의 암호화여부를 설정합니다.

 asyncTimeout

 비동기 작업 수행시 해당 작업이 끝날때 까지 대시하는 시간을 설정합니다.

 clientIDMode

 페이지에 존재하는 컨트롤의 ClientID지정방식을 설정합니다.

 controlRenderingCompatibilityVersion

 페이지렌더링시 사용할 ASP.NET버전을 지정합니다.

 

(9) httpRuntime

 

http요청 동작에 관한 설정입니다.

 

<httpRuntime enable="true" />

 

해당 설정에 적용할 수 있는 속성은 아래와 같습니다.

 

 useFullyQualifiedRedirectUrl

 FQN URL여부를 지정합니다.

 enable

 프로그램의 동작여부 자체를 지정합니다.

 executionTimeout

 기본값은 110초이며 요청이 발생하면 프로그램이 동작할 수 있는 시간을 의미합니다.

 maxRequestLength

 업로드 가능한 파일의 최대크기를 지정합니다. 기본값은 4096이며 kb단위입니다.

 requestLengthDiskThreshold

 파일 업로드시 디스크에 파일이 저장되는 파일버퍼링기능사용여부를 지정합니다. 이 값은 maxRequestLength보다 클 수 없습니다.

 

파일이 디스크에 버퍼링되도록 설정되면 파일은 codegen폴더안에 별도의 하위폴더 이름으로 저장되며 이 위치는 <compilation>요소의 tmpDirectory속성으로 변경될 수 있습니다.

 appRequestQueueLimit

 ASP.NET 큐의 최대요청수를 지정합니다.

 minFreeThreads

 ASP.NET이 요청을 처리하는데 사용할 최소 스레드수를 지정합니다. 기본값은 8입니다. 

 minLocalRequestFreeThreads

 서버 내부의 요청을 처리하는데 필요한 최소스레드수를 지정합니다. 기본값은 4입니다.

 enableKernelOutputCache

 IIS의 커널(http.sys)에서의 출력캐싱 사용여부를 설정합니다.

 

(10) processModel

 

IIS에서 ASP.NET에 대한 클라이언트의 요청이 발생하면 그 요청을 w3wp.exe라는 작업자 프로세스에 전달하여 처리합니다. processModel은 이 처리에 대한 설정입니다.

 

<processModel enable="true" />

 

사용할 수 있는 속성은 아래와 같습니다.

 

 enable

 프로세스모델 사용여부를 지정합니다.

 timeout

 새 작업자 프로세스를 시작할때까지의 시간을 설정합니다. 시간단위는 '분'이며 해당 시간이 지나면 ASP.NET작업프로세스가 재시작됩니다.

 idelTimeout

 기존 작업자 프로세스가 종료되는 시간을 'HH:MM:SS'형식으로 지정합니다.

 shutdownTimeout

 작업자 프로세스가 스스로 중지될 수 있는 시간을 설정합니다. 기본값이 5이며 단위는 '초'인데 이 시간이 지나도 프로세스가 죽지 않으면 kill명령을 통해 강제로 죽이게 됩니다.

 requestLimit

 작업자 프로세스가 받을 수 있는 허용요청수를 지정합니다.

 requestQueueLimit

 큐에 들어갈 수 있는 요청수를 지정합니다. 만일 이 값이 초과하게 되면 작업자 프로세스는 재시작됩니다. 기본값은 5000입니다.

 memoryLimit

 작업자 프로세스가 사용할 수 있는 최대메모리를 지정합니다. 기본값은 실메모리 대비 60%입니다.

 username / password

 ASP.NET 프로그램은 ASP.NET 계정으로 실행되는데 만일 다른 계정으로 실행되어야 한다면 해당 계정의 ID와 비밀번호를 지정합니다.

 logLevel

 작업자 프로세스에서 발생하는 이벤트의 기록방식을 설정합니다. 이 이벤트기록은 윈도우의 이벤트 로그에 기록됩니다. 기본값은 오류만 기록하는 Errors 입니다.

 clientConnectedCheck

 클라이언트가 일정시간 연결될 시간을 설정합니다. 기본값은 5초입니다.

 responseDeadlockInterval

 작업자 프로세스가 응답하는데 걸리는 시간을 설정합니다. 큐에 요청이 있는데 이 시간동안 프로세스에서 응답이 없으면 프로세스는 재시작됩니다. 기본값은 3분입니다.

 responseRestartDeadlockInterval

 프로세스가 동작중 데드락이 발생했을때 프로세스 재시작까지 대기하는 시간을 설정합니다. 기본값은 9분입니다.

 comImpersonationLevel

 COM보안 인증수준을 설정합니다.

 webGarden

 웹가든 사용여부를 설정합니다. 웹가든은 한서버에 여러개의 작업자프로세스가 동작하도록 하는 것입니다. 참고로 여러개의 프로세서가 동작하는 서버만가능합니다.

 cpuMask

 웹가든이 사용중일때 작업자 프로세스가 실행되어야 하는 특정 프로세서를 지정합니다. 기본값은 0xFFFFFFF이며 모든 프로세서를 의미합니다.

 maxWorkerThreads

 작업자 프로세스의 스레드풀 내부에 존재하는 최대 스레드수를 지정합니다. 기본값은 20입니다.

 maxIoThreads

 작업자 프로세스 내부에 존재하는 최대 I/O스레드 수를 지정합니다.

 autoConfig

 ASP.NET 애플리케이션의 성능설정구성 여부를 지정합니다.

 minWorkerThreads

 작업자 프로세스의 스레드풀 내부에 존재하는 최소 스레드수를 지정합니다. 기본값은 1입니다.

 minIoThreads

 작업자 프로세스 내부에 존재하는 최소 I/O스레드 수를 지정합니다.

 serverErrirNessageFile

 'Server Unavailable' 오류 메세지 대신 보여줄 오류메세지 파일을 지정합니다.

 pingFrequency

 ISAPI extenstion이 작업자 프로세스가 동작하는지 확인하기 위해 ping을 하는 시간간격을 설정합니다.

 pingTimeout

 ping후 작업자 프로세스가 응답하지 않으면 얼마후에 작업자 프로세스를 재시작할지에 대한 시간을 설정합니다.

 maxAppDomains

 하나의 프로세스에 대한 애플리케이션 도메인 최대수를 지정합니다.

 

(11) appSettings

 

프로그램에 필요한 설정을 저장하기 위한 용도입니다.

 

<appSettings>
  <add key="site_name" value="cliel.com" />
</appSettings>

 

key에는 키값을 value에는 해당 키에대한 값을 지정합니다.

'Programming > .NET' 카테고리의 다른 글

[Visual Studio] SuperCharger - 확장기능  (2) 2016.10.11
[C#] 이니셜라이저(initializer)  (0) 2016.10.11
[ASP.NET] 설정파일 - 1  (0) 2016.10.04
[ASP.NET] 웹서비스(Web Service)  (0) 2016.09.27
[ASP.NET] URL 매핑 (URL 라우팅)  (0) 2016.09.21
[ASP.NET] TreeView  (0) 2016.09.13
0 0
1
블로그 이미지

클리엘