Visual Web Developer의 웹 서버

업데이트: 2007년 11월

이 항목에서는 IIS(인터넷 정보 서비스) 또는 기본 제공된 ASP.NET Development Server를 사용하여 웹 사이트를 테스트하고 실행하는 데 대해 설명합니다.

ASP.NET 웹 응용 프로그램을 테스트하거나 실행하려면 웹 서버가 필요합니다. Microsoft 운영 체제에 사용할 수 있는 프로덕션 웹 서버는 웹 서버, FTP(파일 전송 프로토콜) 서버, SMTP(Simple Mail Transfer Protocol) 가상 전자 메일 서버 및 다른 기능을 포함하는 IIS입니다. IIS를 실행하려면 네트워크 환경에서 서버 역할을 할 수 있는 Windows 버전을 사용해야 합니다. 예를 들면 Windows Server 2003의 웹 버전을 사용할 수 있습니다.

Windows 2000 Server 및 이전 버전의 Windows 서버 운영 체제에서는 기본적으로 IIS가 운영 체제의 일부로 설치됩니다. 그러나 Windows XP 및 Windows Server 2003에서는 IIS가 기본적으로 설치되지 않으며 제어판에서 프로그램 추가/제거Windows 구성 요소 추가/제거 옵션을 사용하여 추가할 수 있습니다. Windows Server 2003에서는 응용 프로그램 서버 구성 요소를 사용하여 IIS를 설치할 수 있습니다.

다음과 같은 경우에는 IIS를 사용할 수 없습니다.

  • IIS를 지원하지 않는 Windows XP Home Edition을 사용하는 동안 ASP.NET 웹 페이지를 개발하는 경우

  • 보안상의 이유로 사용자 컴퓨터(예: 홈 네트워크)에서 웹 서버를 호스팅하지 않으려는 경우. IIS와 같은 웹 서버를 실행하려면 서버의 보안을 유지하기 위해 추가 단계를 수행하고 항상 최신 버전의 보안 업데이트를 설치해야 합니다.

  • IIS와 같은 특정 서버 구성 요소를 설치할 수 없도록 회사 정책에 지정된 경우

ASP.NET Development Server

IIS를 웹 서버로 사용할 수 없거나 사용하지 않으려는 경우 ASP.NET Development Server를 사용하여 ASP.NET 페이지를 테스트할 수 있습니다. ASP.NET Development Server는 Visual Web Developer에 포함되어 있으며 Windows XP Home Edition을 포함하여 Windows 운영 체제에서 로컬로 실행되는 웹 서버입니다. 이 서버는 웹 서버와 같은 컴퓨터에서 검색하는 로컬 호스트 시나리오에서 ASP.NET 웹 페이지를 제공하거나 실행하는 데 사용하기 위해 개발되었습니다. 즉, ASP.NET Development Server는 로컬 컴퓨터의 브라우저 요청에 페이지를 제공하고 다른 컴퓨터에는 페이지를 제공하지 않습니다. 또한 응용 프로그램 범위 외부에 있는 파일도 제공하지 않습니다. ASP.NET Development Server를 사용하면 IIS를 실행하는 프로덕션 서버에 페이지를 게시하기 전에 로컬에서 페이지를 테스트할 수 있습니다.

ASP.NET Development Server는 로컬 컴퓨터에서 인증된 요청만 수락합니다. 이를 위해서는 서버에서 NTLM 또는 기본 인증을 지원할 수 있어야 합니다.

참고:

관리자로 로그온한 경우에는 Visual Web Developer를 실행하지 않는 것이 좋습니다. 좀 더 제한적인 계정에서 실행하십시오. 이렇게 하면 서버의 다른 파일에 실수로 액세스하는 문제를 방지할 수 있습니다.

ASP.NET Development Server는 개별 페이지에만 사용되고 IIS의 추가 기능을 포함하지 않습니다. 예를 들어 ASP.NET Development Server는 SMTP 메일 서버를 지원하지 않습니다. ASP.NET Development Server는 전자 메일 메시지를 전달하거나 이러한 작업을 수행하는 서버를 호출할 수 없으므로 웹 응용 프로그램에서 전자 메일 메시지를 보내는 경우 전자 메일을 테스트하려면 IIS SMPT 가상 서버에 액세스할 수 있어야 합니다.

ASP.NET Development Server 실행

기본적으로 ASP.NET Development Server는 Visual Web Developer와 함께 설치됩니다. 파일 시스템 웹 사이트로 작업하는 경우 Visual Web Developer에서는 자동으로 ASP.NET Development Server를 사용하여 페이지를 실행합니다. 기본적으로 로컬 호스트 시나리오에 대해 임의로 선택된 포트에서 웹 서버가 호출됩니다. 예를 들어 ExamplePage.aspx라는 페이지를 테스트하는 경우 ASP.NET Development Server에서 이 페이지를 실행하면 페이지의 URL은 다음과 같습니다.

https://localhost:31544/ExamplePage.aspx

브라우저를 닫으면 ASP.NET Development Server가 다시 종료됩니다.

ASP.NET Development Server를 특정 포트에서 실행하도록 서버를 구성할 수 있습니다. 다음과 같은 시나리오에서 이 방법을 사용하는 것이 좋습니다.

  • 응용 프로그램의 코드가 특정 포트를 수신 대기하고 ASP.NET Development Server를 사용하여 응용 프로그램을 테스트하려는 경우

  • 특정 포트에 바인딩된 웹 서비스 또는 클라이언트 프로젝트에 대한 참조가 응용 프로그램에 포함되어 있는 경우

Visual Web Developer에서는 파일 시스템 웹 사이트를 실행하는 경우 사용자가 지정한 포트를 사용하지 못할 수도 있습니다. 자세한 내용은 방법: ASP.NET Development Server에 사용할 포트 지정을 참조하십시오.

ASP.NET Development Server에 대한 보안 컨텍스트

ASP.NET Development Server와 IIS 간의 중요한 차이점은 각 서버가 ASP.NET 페이지를 실행하는 보안 컨텍스트입니다. 이러한 차이점은 페이지 실행 방식과 관련되므로 테스트에 영향을 줄 수 있습니다.

ASP.NET Development Server를 사용하여 페이지를 실행하는 경우 이 페이지는 현재 사용자 계정 컨텍스트에서 실행됩니다. 예를 들어 관리자 수준의 사용자로 실행 중인 경우 ASP.NET Development Server에서 실행되는 페이지는 관리자 수준의 권한을 가집니다. 이와 달리 IIS에서는 기본적으로 권한이 제한된 특수 사용자(ASPNET 또는 NETWORK SERVICES) 컨텍스트에서 ASP.NET이 실행됩니다. ASPNET 또는 NETWORK SERVICES 계정은 도메인 계정이 아니라 서버 컴퓨터에 대해 로컬이므로 다른 컴퓨터에 있는 리소스에 대한 액세스가 제한됩니다.

단순히 ASP.NET 페이지의 코드를 읽고 실행만 할 경우에는 이러한 차이가 별로 중요하지 않습니다. 그러나 두 웹 서버에 대한 보안 컨텍스트의 차이로 인해 다음과 같은 테스트 작업에 영향을 줄 수 있습니다.

  • 페이지에서 요청하는 다른 리소스에 대한 액세스   웹 페이지 이외의 파일 읽기/쓰기, Windows 레지스트리 읽기/쓰기 등의 경우를 예로 들 수 있습니다.

  • 데이터베이스 액세스   ASP.NET Development Server로 작업할 경우에는 일반적으로 Windows 통합 인증을 사용하여 SQL Server에 액세스할 수 있습니다. 그러나 같은 페이지를 IIS에서 ASPNET 또는 NETWORK SERVICES 계정으로 실행할 경우 이 페이지는 로컬 사용자 컨텍스트에서 실행되고, 사용자 및 암호 정보를 포함하는 연결 문자열을 사용하도록 페이지를 구성해야 합니다. 자세한 내용은 웹 응용 프로그램에서 SQL Server 액세스ASP.NET 보안 아키텍처를 참조하십시오.

  • 코드 액세스 보안   서로 다른 영역에서 보호되는 리소스에 액세스해야 하는 페이지는 ASP.NET Development Server와 IIS에서 각각 다르게 실행될 수 있습니다.

ASP.NET Development Server를 사용하여 페이지가 제대로 작동하는지 테스트할 수 있지만 IIS를 실행하는 프로덕션 웹 서버에 페이지를 게시한 후 다시 페이지를 테스트해야 합니다.

ASP.NET Development Server의 파일 권한 부여

파일 시스템 웹 사이트의 경우 이미지와 스타일시트 같은 정적 파일에는 ASP.NET 권한 부여가 적용됩니다. 예를 들어 파일 시스템 웹 사이트의 정적 파일에 대한 익명 액세스가 비활성화된 경우에는 이러한 파일이 익명 사용자에게 제공되지 않습니다. 그러나 HTTP 위치에서 웹 사이트 프로젝트를 만들면 IIS는 권한 부여 규칙을 사용하지 않고 정적 파일을 제공합니다.

참고 항목

작업

연습: Visual Web Developer에서 기본 웹 페이지 만들기

개념

파일 시스템 웹 사이트