IIS 8.0 ASP.NET 구성 관리

등록일시: 2012-04-29 10:40,  수정일시: 2013-10-05 14:58
조회수: 7,802
이 문서는 IIS 기술을 널리 알리고자 하는 개인적인 취지로 제공되는 번역문서입니다. 이 문서에 대한 모든 저작권은 마이크로소프트에 있으며 요청이 있을 경우 언제라도 게시가 중단될 수 있습니다. 번역 내용에 오역이 존재할 수 있고 주석은 번역자 개인의 의견일 뿐이며 마이크로소프트는 이에 관한 어떠한 보장도 하지 않습니다. 번역이 완료된 이후에도 대상 제품 및 기술이 개선되거나 변경됨에 따라 원문의 내용도 변경되거나 보완되었을 수 있으므로 주의하시기 바랍니다.
본 문서에서는 ASP.NET 3.5와 ASP.NET 4.5를 그 버전에 따라 적절하게 지원해주는 IIS 8.0의 관리 도구들을 살펴봅니다. 다만, 본문의 원문은 IIS 8이 정식으로 배포되기 이전인 2012년 2월 29일에 공개된 문서로, 일부 내용에 변경사항이 존재할 수 있습니다. 본 문서는 2012년 4월 현재, IIS 8을 미리 살펴보기 위한 사전정보일 뿐입니다.

호환성

버전 비고
IIS 8.0 IIS 8.0에서는 ASP.net 4.5를 지원하기 위해서 IIS 관리 도구들이 갱신되었습니다.
IIS 7.5 IIS 7.5의 IIS 관리 도구들은 ASP.net 4.5를 지원하지 않습니다.
IIS 7.0 IIS 7.0의 IIS 관리 도구들은 ASP.net 4.0를 지원하지 않습니다.

내용

문제점

윈도우 서버 8에는 .NET 프레임워크 4.5가 기본으로 포함되어 있으며 선택적으로 .NET 프레임워크 3.5를 설치할 수도 있습니다. 또한, 개발자들은 종종 여러 가지 버전의 .NET 프레임워크 버전으로 구성된 웹 응용 프로그램들을 동시에 실행시켜야 할 경우도 있으며, 그에 따라 버전별로 적절한 관리를 수행해야 할 필요성이 있습니다.

해결방법

IIS 8.0은 UI 기반의 시각적 IIS 관리자 도구뿐만 아니라 IIS 명령줄 관리 도구를 이용한 ASP.NET 3.5 및 ASP.NET 4.5 응용 프로그램의 관리를 지원합니다.

그리고, 시각적 IIS 관리 도구와 명령줄 IIS 관리 도구, 두 가지 모두 ASP.NET 응용 프로그램에 대한 구성 정보를 읽고 기록할 때, 버전별 특성을 감안하여 적절하게 동작합니다. 가령, IIS 서버 관리자에서 실행되는 ASP.NET 관리 모듈들은 응용 프로그램에서 사용하는 ASP.NET의 버전에 따라 적절한 구성 옵션들을 보여줄 것입니다.

단계별 지침

전제조건:

본문에서 살펴볼 내용들을 따라해보기 위해서는 IIS 8.0, ASP.NET 3.5, 그리고 ASP.NET 4.5가 모두 설치된 윈도우 8 머신이 필요합니다.

따라서 본문을 살펴보기에 앞서, 먼저 관련 미리보기인 ASP.NET 3.5와 ASP.NET 4.5를 지원하는 IIS 8 문서를 살펴볼 것을 권해드립니다. 이 문서에서는 필요한 세 가지 기능들과 두 가지 버전의 ASP.NET 예제 응용 프로그램의 설치방법이 제공됩니다.

알려진 버그에 대한 해결방법:

  • 현재 이 기능에 대한 알려진 버그는 존재하지 않습니다.

ASP.NET 관리 모듈 출력

IIS 관리자 UI를 시작한 다음, 창의 좌측에 위치한 트리뷰를 확장하여 "Default Web Site"와 그 하위 노드들이 보이도록 조정합니다:

그러면, IIS 관리자 UI의 우측 부분에 트리뷰에서 선택한 ASP.NET 응용 프로그램을 관리할 수 있는 관리 모듈들이 나타납니다. 본문에서는 Default Web Site가 선택되었고, 기본적으로 이 웹사이트는 ASP.NET 4.5를 지원하므로, IIS 관리자에 15가지 ASP.NET 관련 관리 모듈들이 나타납니다. 위의 그림에서 빨간색 박스로 표시된 세 가지 관리 모듈들은 ASP.NET 4.5 응용 프로그램에서만 사용 가능한 모듈들입니다.

다음의 IIS 관리자 그림과 비교해보면 ASP.NET 3.5 응용 프로그램 관리 시와 ASP.NET 4.5 응용 프로그램 관리 시의 대략적인 차이점을 이해할 수 있습니다. "example35" 응용 프로그램은 ASP.NET 3.5로 구성되어 있기 때문에, 12가지 ASP.NET 관련 관리 모듈들만 나타납니다:

이처럼 IIS 8.0의 IIS 관리자는 ASP.NET 4.5 관리 시에 다음과 같은 세 가지 추가적인 관리 모듈을 지원해줍니다:

  • 공급자(Providers): 이 관리 모듈은 ASP.NET 4.5의 멤버십, 역할 관리자, 그리고 프로필 기능을 위한 추가 및 삭제 가능한 영속화 공급자를 중앙 집중 관리합니다.
  • .NET 사용자(.NET Users): ASP.NET 4.5 응용 프로그램의 멤버십 사용자를 대화형 UI를 이용해서 생성, 삭제 및 변경할 수 있습니다.
  • .NET 역할(.NET Roles): 대화형 UI를 이용해서 역할을 생성하거나 삭제할 수 있으며, 사용자를 역할에 추가하거나 제거할 수 있도록 ".NET 사용자" 모듈과 통합되어 있습니다. 다른 두 가지 관리 모듈들처럼, ".NET 역할" 모듈도 ASP.NET 4.5 응용 프로그램 관리를 위해서 사용됩니다.

ASP.NET 컴파일 설정 관리

ASP.NET 3.5와 ASP.NET 4.5를 모두 지원하는 관리 모듈들 중 대부분은 버전에 관계 없이 동일한 기능들을 제공해줍니다. 그러나, ASP.NET의 일부 기능들은 새로운 .NET 프레임워크 버전에 추가된 새로운 구성 옵션들을 지원할 수 있도록 변경되었습니다. IIS 관리자의 ASP.NET 관리 모듈들은 관리할 ASP.NET 응용 프로그램의 버전에 따라 옵션들의 출력을 동적으로 적절하게 변경하여 이를 지원해줍니다.

다음은 ASP.NET 3.5에 대한 .NET 컴파일 모듈의 스크린샷입니다:

그리고, 다음은 ASP.NET 4.5에 대한 동일한 .NET 컴파일 모듈의 스크린샷입니다. ASP.NET 4.5의 새로운 기능에 대응할 수 있도록 구성 옵션이 추가된 것을 볼 수 있습니다:

ASP.NET 4.5 응용 프로그램에서 사용 가능한 이 두 가지 새로운 옵션들은:

  • Enable JIT Profiling: ASP.NET 4.5는 기본적으로, 여분의 CPU 코어를 이용한 적극적인 JIT 실행 경로의 백그라운드 컴파일을 활성화하기 위해서, CLR의 JIT 컴파일을 통해서 동작합니다. *
  • Enable Prefetch: 윈도우 서버 8에서만 사용할 수 있는 ASP.NET 4.5의 기능 중 하나로, ASP.NET 4.5의 컴파일 시스템과 윈도우 서버 8의 슈퍼패치 서비스를 결합할 수 있습니다. 슈퍼패치 서비스와 ASP.NET 프리패치를 모두 활성화시키면, 웹 응용 프로그램이 시작되는 동안, 윈도우 서버 8이 ASP.NET의 컴파일을 분석해서 관리되는 어셈블리들이 로드될 때의 디스크 성능을 동적으로 최적화합니다.

* 이 항목의 경우 일단 번역은 마쳤으나 부끄럽게도 저 역시 본문에서 전하고자 하는 바를 정확하게 이해하지 못하고 있습니다. 구글링을 해봤지만 IIS의 JIT Profiling 자체에 대한 설명을 거의 찾아볼 수 없었으며 TechNet 문서에도 이 항목에 대한 설명은 2012년 4월 현재, '보류(TBD, To Be Determined)' 상태입니다. 이 항목을 보다 정확하게 이해하기 위해서는 IIS보다는 .NET 4.x의 프로파일링에 대한 보다 전문적인 지식이 필요할 것으로 보입니다.

다만, 문맥을 감안해본다면 이 항목을 All로 설정하면 모든 코어에 대해 JIT Profiling을 활성화시킨다는 의미인 것 같습니다. 이 항목에 대해서는 보다 많은 분들과 의견을 나누고 싶습니다.

ASP.NET 컴퓨터 키 설정 관리

다음 스크린샷은 ASP.NET 3.5에 대한 컴퓨터 키 설정 관리 화면입니다. "Validation method" 드롭다운 항목과 "Encryption method" 드롭다운 항목에는 ASP.NET 3.5의 다양한 보안 관련 기능에서 사용할 수 있는 해시 알고리즘 및 암호화 알고리즘이 제공됩니다: (주의: 이 그림은 두 드롭다운 항목의 모든 옵션들을 한 눈에 볼 수 있도록 편집된 것입니다.)

그리고, 다음 스크린샷은 ASP.NET 4.5에 대한 컴퓨터 키 설정 관리 화면입니다.

직접 확인할 수 있는 것처럼, "Encryption method" 드롭다운 항목의 알고리즘 옵션은 ASP.NET 4.5와 ASP.NET 3.5가 동일합니다. (AES는 .NET 2.0부터 지원됩니다.) 그러나, ASP.NET 4.5의 해시 알고리즘("Validation method" 항목)은 SHA-2 계열의 주요 해시 알고리즘을 지원하기 위해서 확충되었습니다. (HMACSHA256, HMACSHA384, 및 HMACSHA512)

ASP.NET 페이지 및 컨트롤 관리

다음 스크린샷은 ASP.NET 3.5 응용 프로그램에 대한 페이지 및 컨트롤 관리 화면입니다. 이 관리 모듈은 ASP.NET 3.5 응용 프로그램에서 일반적으로 사용되는 구성 옵션들 중 일부를 제공합니다:

그리고, 다음 스크린샷은 ASP.NET 4.5 응용 프로그램에 대한 페이지 및 컨트롤 관리 화면입니다. ASP.NET 4.5의 새로운 구성 옵션들을 지원하기 위해서 "Behavior" 영역의 옵션들이 확장된 것을 알 수 있습니다:

지금까지 ASP.NET은 여러 차례 버전이 업그레이드되면서 다양한 기능들과 컨트롤들이 만들어내는 HTML, 자바스크립트, CSS 등에 대한 지속적인 개선이 이루어졌습니다. 그러나, 기존 응용 프로그램 중 일부는 특정 형식으로 렌더된 출력 결과를 기대하는 경우도 있습니다. ASP.NET 4.5는 "페이지 및 컨트롤" 관리 모듈에서 지원하는 새로운 설정들을 구성하여 새로운 렌더링 형식 대신, 계속 기존 렌더링 형식을 지원하도록 설정할 수 있습니다.

  • ClientID Mode: 기본값인 "Predictable"을 지정하면 렌더되는 HTML 요소들의 "id" 어트리뷰트 값이 고정된 식별자로 생성됩니다. 반면, 이 항목을 "AutoID"로 지정하면 ASP.NET 4.5에서도 기존 버전의 ASP.NET ID 생성 방식을 모방합니다. *
  • Control Rendering Compatibility Version: 항목 이름에서 알 수 있는 것처럼, 다양한 ASP.NET 컨트롤들이 렌더하는 HTML/자바스크립트/CSS 출력의 버전을 제어할 수 있습니다. 다시 말해서, 이 항목을 "3.5"로 지정하면 ASP.NET 4.5에서도 ASP.NET 3.5에서 생성되는 형식과 같은 출력이 만들어집니다. **

* 더 자세한 정보는 ASP.NET 웹 서버 컨트롤 식별 문서와 Control.ClientIDMode 속성 문서를 참고하시기 바랍니다.

** 더 자세한 정보는 pages 요소(ASP.NET 설정 스키마) 문서의 controlRenderingCompatibilityVersion 항목과 Control.RenderingCompatibility 속성 문서를 참고하시기 바랍니다.

요약

IIS 8.0은 하나의 머신에서 서로 다른 .NET 프레임워크 버전을 호스트하는 개별적인 응용 프로그램 풀을 통해서 ASP.NET 3.5와 ASP.NET 4.5 응용 프로그램을 동시에 실행할 수 있습니다. 그리고, 이 두 가지 버전의 ASP.NET 응용 프로그램 관리를 지원하기 위해서 IIS 8.0의 관리 도구들(그래픽 기반 관리도구 및 명령줄 도구 모두) 또한 복수의 ASP.NET 버전 관리를 지원합니다. 뿐만 아니라, IIS 8.0 서버 관리자는 관리하는 ASP.NET 응용 프로그램의 버전에 따라 동적으로 적절한 관리 옵션을 표시해줍니다.