Visual Studio를 사용하여 SQL Server Compact를 사용하여 ASP.NET 웹 애플리케이션 배포: 소개 - 12개 중 1개
작성자: Tom Dykstra
이 자습서 시리즈에서는 Visual Studio 2012 RC 또는 Visual Studio Express 2012 RC for Web을 사용하여 SQL Server Compact 데이터베이스를 포함하는 ASP.NET 웹 애플리케이션 프로젝트를 배포(게시)하는 방법을 보여 줍니다. 웹 게시 업데이트를 설치하는 경우 Visual Studio 2010을 사용할 수도 있습니다.
Visual Studio 2012의 RC 릴리스 이후 도입된 배포 기능을 보여 주는 자습서에서는 SQL Server Compact 이외의 SQL Server 버전을 배포하는 방법과 Azure 앱 Service Web Apps에 배포하는 방법을 보여 줍니다. Visual Studio를 사용하여 ASP.NET 웹 배포를 참조하세요.
이 자습서에서는 테스트를 위해 로컬 개발 컴퓨터의 IIS에 먼저 배포한 다음 타사 호스팅 공급자에게 배포하는 방법을 안내합니다. 배포할 애플리케이션은 애플리케이션 데이터베이스와 ASP.NET 멤버 자격 데이터베이스를 사용합니다. SQL Server Compact를 사용하여 SQL Server Compact에 배포하기 시작하고, 이후 자습서에서는 데이터베이스 변경 내용을 배포하는 방법과 SQL Server로 마이그레이션하는 방법을 보여 줍니다.
자습서에서는 Visual Studio에서 ASP.NET 사용하는 방법을 알고 있다고 가정합니다. 그렇지 않은 경우 시작하는 것이 좋은 위치는 기본 ASP.NET Web Forms 자습서 또는 기본 ASP.NET MVC 자습서입니다.
자습서와 직접 관련이 없는 질문이 있는 경우 ASP.NET 배포 포럼에 게시할 수 있습니다.
개요
이 자습서에서는 테스트를 위해 로컬 개발 컴퓨터의 IIS에 먼저 배포한 다음 타사 호스팅 공급자에게 배포하는 방법을 안내합니다. 배포할 애플리케이션은 애플리케이션 데이터베이스와 ASP.NET 멤버 자격 데이터베이스를 사용합니다. SQL Server Compact를 사용하여 SQL Server Compact에 배포하기 시작하고, 이후 자습서에서는 데이터베이스 변경 내용을 배포하는 방법과 SQL Server로 마이그레이션하는 방법을 보여 줍니다.
자습서 수(모두 11개 및 문제 해결 페이지)는 배포 프로세스를 어렵게 만들 수 있습니다. 실제로 사이트 배포에 대한 기본 절차는 자습서 집합의 비교적 작은 부분을 구성합니다. 그러나 실제 상황에서는 배포의 일부 작지만 중요한 추가 측면(예: 대상 서버에 대한 폴더 사용 권한 설정)에 대한 정보가 필요한 경우가 많습니다. 자습서에서 실제 애플리케이션을 성공적으로 배포하지 못할 수 있는 정보를 남기지 않기를 바라며 이러한 추가 기술을 자습서에 많이 포함했습니다.
자습서는 순서대로 실행되도록 설계되었으며 각 파트는 이전 부분에서 빌드됩니다. 그러나 상황과 관련이 없는 부분을 건너뛸 수 있습니다. (파트를 건너뛰려면 이후 자습서에서 절차를 조정해야 할 수 있습니다.)
대상 독자
이 자습서는 소규모 조직 또는 다른 환경에서 작업하는 ASP.NET 개발자를 대상으로 합니다.
- 연속 통합 프로세스(자동화된 빌드 및 배포)는 사용되지 않습니다.
- 프로덕션 환경은 타사 호스팅 공급자입니다.
- 한 사람은 일반적으로 여러 역할(동일한 사람이 개발, 테스트 및 배포)을 채웁니다.
엔터프라이즈 환경에서는 연속 통합 프로세스를 구현하는 것이 더 일반적이며 프로덕션 환경은 일반적으로 회사의 자체 서버에서 호스팅됩니다. 또한 다른 사용자는 일반적으로 서로 다른 역할을 수행합니다. 엔터프라이즈 배포에 대한 자세한 내용은 엔터프라이즈 시나리오에서 웹 애플리케이션 배포를 참조 하세요.
모든 규모의 조직은 Azure에 웹 애플리케이션을 배포할 수도 있으며, 이러한 자습서에 표시된 대부분의 절차는 Azure 앱 Services Web Apps에도 적용됩니다. Azure에 대한 소개는 다음을 참조하세요 https://azure.microsoft.com.
자습서에 표시된 호스팅 공급자
이 자습서에서는 호스팅 회사를 사용하여 계정을 설정하고 해당 호스팅 공급자에 애플리케이션을 배포하는 프로세스를 안내합니다. 자습서에서 라이브 웹 사이트에 배포하는 전체 환경을 설명할 수 있도록 특정 호스팅 회사를 선택했습니다. 각 호스팅 회사는 다양한 기능을 제공하며 서버에 배포하는 환경은 다소 다릅니다. 그러나 이 자습서에서 설명하는 프로세스는 전체 프로세스에 일반적입니다.
이 자습서에 사용되는 호스팅 공급자인 Cytanium.com 사용할 수 있는 많은 공급자 중 하나이며 이 자습서에서 사용하는 것이 보증 또는 권장 사항을 구성하지 않습니다.
웹 사이트 프로젝트 배포
Contoso University는 Visual Studio 웹 애플리케이션 프로젝트입니다. 이 자습서에 설명된 대부분의 배포 방법과 도구는 웹 사이트 프로젝트에 적용되지 않습니다. 웹 사이트 프로젝트를 배포하는 방법에 대한 자세한 내용은 ASP.NET 배포 콘텐츠 맵을 참조 하세요.
ASP.NET MVC 프로젝트 배포
이 자습서에서는 ASP.NET Web Forms 프로젝트를 배포하지만, 수행하는 방법을 알아보는 모든 작업은 ASP.NET MVC에도 적용할 수 있습니다. Visual Studio MVC 프로젝트는 웹 애플리케이션 프로젝트의 또 다른 형태일 뿐입니다. 유일한 차이점은 ASP.NET MVC 또는 대상 버전을 지원하지 않는 호스팅 공급자에 배포하는 경우 프로젝트에 적절한(MVC 3 또는 MVC 4) NuGet 패키지를 설치했는지 확인해야 한다는 것입니다.
프로그래밍 언어
샘플 애플리케이션은 C#을 사용하지만 자습서에는 C#에 대한 지식이 필요하지 않으며 자습서에서 보여 준 배포 기술은 언어별로 다릅니다.
이 자습서 중 문제 해결
배포 중에 오류가 발생하거나 배포된 사이트가 제대로 실행되지 않는 경우 오류 메시지가 항상 솔루션을 제공하지는 않습니다. 몇 가지 일반적인 문제 시나리오를 돕기 위해 문제 해결 참조 페이지를 사용할 수 있습니다. 자습서를 진행하는 동안 오류 메시지가 표시되거나 문제가 해결되지 않는 경우 문제 해결 페이지를 확인해야 합니다.
댓글 시작
자습서에 대한 의견을 환영합니다. 자습서가 업데이트되면 자습서 주석에 제공된 개선 사항을 수정하거나 제안하기 위해 모든 노력을 기울입니다.
필수 조건
시작하기 전에 Windows 7 이상과 다음 제품 중 하나가 컴퓨터에 설치되어 있는지 확인합니다.
- Visual Studio 2010 SP1
- Visual Web Developer Express 2010 SP1
- Visual Studio 2012 RC 또는 Visual Studio Express 2012 RC for Web
Visual Studio 2010 SP1 또는 Visual Web Developer Express 2010 SP1이 있는 경우 다음 제품도 설치합니다.
- .NET용 Azure SDK(VS 2010 SP1)(웹 게시 업데이트 포함)
- Microsoft Visual Studio 2010 SP1 Tools for SQL Server Compact 4.0
자습서를 완료하려면 다른 소프트웨어가 필요하지만 아직 로드할 필요는 없습니다. 이 자습서에서는 필요할 때 설치하는 단계를 안내합니다.
샘플 애플리케이션 다운로드
배포할 애플리케이션의 이름은 Contoso University이며 이미 생성되었습니다. ASP.NET 사이트의 Entity Framework 자습서에 설명된 Contoso University 애플리케이션을 기반으로 하는 대학 웹 사이트의 간소화된 버전입니다.
필수 구성 요소가 설치되어 있는 경우 Contoso University 웹 애플리케이션을 다운로드합니다. .zip 파일에는 프로젝트의 여러 버전과 12개의 자습서가 모두 포함된 PDF 파일이 포함되어 있습니다. 자습서의 단계를 진행하려면 ContosoUniversity-Begin부터 시작합니다. 자습서의 끝에서 프로젝트의 모양을 확인하려면 ContosoUniversity-End를 엽니다. 자습서 10에서 전체 SQL Server로 마이그레이션하기 전에 프로젝트의 모양을 확인하려면 ContosoUniversity-AfterTutorial09를 엽니다.
자습서 단계를 진행할 준비를 하려면 Visual Studio 프로젝트 작업에 사용하는 폴더에 ContosoUniversity-Begin을 저장합니다. 기본적으로 이 폴더는 다음과 같습니다.
C:\Users\<username>\Documents\Visual Studio 2012\Projects
(이 자습서의 스크린샷의 경우 프로젝트 폴더는 : 드라이브의 루트 디렉터리에 C
있습니다.)
Visual Studio를 시작하고, 프로젝트를 열고, Ctrl-F5를 눌러 실행합니다.
웹 사이트 페이지는 메뉴 모음에서 액세스할 수 있으며 다음 기능을 수행할 수 있습니다.
- 학생 통계(정보 페이지)를 표시합니다.
- 학생을 표시, 편집, 삭제 및 추가합니다.
- 과정을 표시하고 편집합니다.
- 강사를 표시하고 편집합니다.
- 부서를 표시하고 편집합니다.
다음은 몇 가지 대표 페이지의 스크린샷입니다.
배포에 영향을 주는 애플리케이션 기능 검토
애플리케이션의 다음 기능은 애플리케이션을 배포하는 방법 또는 배포하기 위해 수행해야 하는 작업과 관련이 있습니다. 이러한 각 내용은 시리즈의 다음 자습서에 자세히 설명되어 있습니다.
- Contoso University는 SQL Server Compact 데이터베이스를 사용하여 학생 및 강사 이름과 같은 애플리케이션 데이터를 저장합니다. 데이터베이스에는 테스트 데이터와 프로덕션 데이터가 혼합되어 있으며 프로덕션에 배포할 때 테스트 데이터를 제외해야 합니다. 자습서 시리즈의 뒷부분에서 SQL Server Compact에서 SQL Server로 마이그레이션합니다.
- 애플리케이션은 SQL Server Compact 데이터베이스에 사용자 계정 정보를 저장하는 ASP.NET 멤버 자격 시스템을 사용합니다. 애플리케이션은 일부 제한된 정보에 액세스할 수 있는 관리자 사용자를 정의합니다. 테스트 계정 없이 하나의 관리자 계정으로 멤버 자격 데이터베이스를 배포해야 합니다.
- 애플리케이션 데이터베이스와 멤버 자격 데이터베이스는 SQL Server Compact를 데이터베이스 엔진으로 사용하므로 데이터베이스 엔진을 호스팅 공급자와 데이터베이스 자체에 배포해야 합니다.
- 애플리케이션은 ASP.NET 유니버설 멤버 자격 공급자를 사용하여 멤버 자격 시스템이 SQL Server Compact 데이터베이스에 데이터를 저장할 수 있도록 합니다. 유니버설 멤버 자격 공급자를 포함하는 어셈블리는 애플리케이션과 함께 배포되어야 합니다.
- 애플리케이션은 Entity Framework 5.0을 사용하여 애플리케이션 데이터베이스의 데이터에 액세스합니다. Entity Framework 5.0을 포함하는 어셈블리는 애플리케이션과 함께 배포되어야 합니다.
- 애플리케이션은 타사 오류 로깅 및 보고 유틸리티를 사용합니다. 이 유틸리티는 애플리케이션과 함께 배포해야 하는 어셈블리에 제공됩니다.
- 오류 로깅 유틸리티는 XML 파일의 오류 정보를 파일 폴더에 씁니다. 배포된 사이트에서 실행되는 ASP.NET 계정에 이 폴더에 대한 쓰기 권한이 있는지 확인해야 하며 이 폴더를 배포에서 제외해야 합니다. 그렇지 않으면 테스트 환경의 오류 로그 데이터가 프로덕션에 배포되거나 프로덕션 오류 로그 파일이 삭제될 수 있습니다.
- 애플리케이션에는 대상 환경(테스트 또는 프로덕션)에 따라 배포된 Web.config 파일에서 변경해야 하는 일부 설정과 빌드 구성(디버그 또는 릴리스)에 따라 변경해야 하는 기타 설정이 포함됩니다.
- Visual Studio 솔루션에는 클래스 라이브러리 프로젝트가 포함됩니다. 이 프로젝트에서 생성하는 어셈블리만 프로젝트 자체가 아니라 배포해야 합니다.
시리즈의 첫 번째 자습서에서는 샘플 Visual Studio 프로젝트를 다운로드하고 애플리케이션 배포 방법에 영향을 주는 사이트 기능을 검토했습니다. 다음 자습서에서는 이러한 항목 중 일부를 자동으로 처리하도록 설정하여 배포를 준비합니다. 다른 사용자는 수동으로 처리합니다.