관리 권한 없이 IIS Express 실행

작성자: Vaidy Gopalakrishnan

IIS Express 가장 일반적인 웹 개발 및 테스트 작업을 관리 권한 없이 수행할 수 있도록 설계되었습니다. 이는 개발자가 컴퓨터에서 관리 권한으로 실행되지 않는 시나리오에서 매우 유용합니다. 관리자의 경우에도 이 기능을 사용하면 Windows Vista 및 Windows 7의 UAC(사용자 계정 컨트롤) 팝업 창이 워크플로를 중단하지 않습니다.

이 문서에서는 표준 사용자가 IIS Express 수행할 수 있는 작업을 설명하고 관리자로 제한되는 작업에 대해 설명합니다.

로컬로 사이트 실행

IIS Express 표준 사용자는 예약된 포트(1024보다 큰 포트)를 사용하여 로컬에서 웹 사이트를 실행할 수 있습니다. IIS Express 대한 기본 웹 사이트 바인딩은 입니다http://localhost:8080. 기본적으로 WebMatrix 및 Visual Studio 2010 SP1 베타는 localhost 및 예약되지 않은 포트를 사용하도록 웹 사이트를 구성합니다.

반면 외부 요청에 대한 콘텐츠를 제공하거나 80 또는 443과 같은 예약된 포트를 사용하려면 관리 권한이 필요합니다.

웹 사이트 및 애플리케이션 구성

IIS와 IIS Express 모두 서버 전체 구성 정보가 포함된 applicationhost.config 파일을 사용합니다. IIS Express 사용하면 모든 사용자가 고유한applicationhost.config복사본을 소유합니다. 즉, 사용자는 특별한 권한 없이 사이트를 추가하고, 사이트를 제거하고, 가상 디렉터리를 구성할 수 있습니다. IIS Express 사용자의 Documents 폴더에서 applicationhost.config 파일을 찾습니다(예: Windows 7의 %userprofile%\Documents\IISExpress\config). IIS Express /config 명령줄 스위치를 사용하여 사용자 지정 applicationhost.config 파일을 가리글 수도 있습니다. 따라서 관리자가 Visual Studio에서 IIS Express 사용할 필요는 없습니다.

IIS는 표준 사용자가 쓸 수 없는 컴퓨터 차원의 applicationhost.config 파일을 사용하므로 IIS에서 동일한 작업은 관리자만 수행할 수 있습니다. (IIS는 일반적으로 서버 컴퓨터에서 사용되므로 일반적으로 개별 개발자의 관점에서 제한되지 않습니다.)

사이트 시작 및 중지

IIS Express 표준 사용자는 자신의 웹 서버를 원하는 속도로 시작하고 중지할 수 있습니다. WebMatrix 및 Visual Studio 2010 SP1 베타를 사용하거나 iisexpress.exe 명령 실행 파일을 사용하여 이 작업을 수행할 수 있습니다. Windows 시스템 트레이 애플리케이션을 사용하면 사용자가 IIS Express 인스턴스를 찾아서 종료할 수도 있습니다.

IIS를 사용하면 사용자가 직접 웹 사이트를 시작할 수 없습니다. 대신 WAS(작업자 프로세스 정품 인증 서비스)는 웹 사이트 활성화를 담당합니다. WAS는 시스템 서비스이므로 관리자만 시작하거나 중지할 수 있습니다.

SSL 사용

SSL(보안 소켓 계층)에 대한 액세스를 구성하려면 IIS에서와 마찬가지로 IIS Express 대한 관리 권한이 필요합니다. 그러나 IIS Express 설치 프로그램은 표준 사용자가 IIS Express SSL을 사용할 수 있도록 하는 다음 작업을 수행합니다.

  • 로컬 컴퓨터 저장소에 자체 서명된 SSL 서버 인증서를 자동으로 만들고 설치합니다.
  • SSL용 포트 44300~44399를 예약하도록 HTTP.SYS 구성합니다. localhost 및 지정된 범위의 포트 중 하나를 사용하는 들어오는 SSL 요청은 자체 서명된 인증서와 자동으로 연결됩니다.

(HTTP.SYS IIS 및 IIS Express 대한 SSL을 처리하는 운영 체제 구성 요소입니다. 설치 프로그램은 상승된 권한으로 설정이 실행되므로 HTTP.SYS 구성할 수 있습니다.)

따라서 SSL을 사용하여 IIS Express 사용하여 웹 사이트를 테스트하는 것은applicationhost.config의 사이트 요소에 다음과 같은 바인딩을 추가하는 것만큼 간단합니다.

<binding protocol="https" bindingInformation="*:44300:localhost" />

이는 로컬 트래픽(localhost 요청) 및 지정된 포트 범위에 대해서만 작동합니다. 사용자 지정 SSL 인증서를 구성하거나 지정된 범위를 벗어난 포트를 사용하여 SSL을 실행하려면 관리자 권한이 필요합니다.

요약

IIS Express 관리자가 아닌 사용자가 다음 작업을 수행할 수 있도록 합니다.

  • 웹 사이트를 로컬로 실행하고 1024보다 큰 포트 번호를 사용합니다.
  • 웹 사이트, 애플리케이션 및 가상 디렉터리를 추가, 제거 및 수정합니다.
  • 웹 서버를 시작하고 중지합니다.
  • 미리 설치된 자체 서명된 SSL 인증서와 44300에서 44399 사이의 포트를 사용하여 웹 사이트를 테스트하는 SSL 지원을 추가합니다.

다음 작업을 수행하려면 관리 권한이 필요합니다.

  • 80 또는 443과 같은 예약된 포트를 사용합니다.
  • 외부 트래픽에 대한 요청을 제공합니다.
  • 사용자 지정 SSL 인증서를 구성합니다.
  • 44300에서 44399 범위 밖의 포트를 사용하여 SSL을 실행합니다.