Visual Studio를 사용하여 웹 배포 ASP.NET: 데이터베이스 배포 준비

시작 프로젝트 다운로드

이 자습서 시리즈에서는 Visual Studio 2012 또는 Visual Studio 2010을 사용하여 ASP.NET 웹 애플리케이션을 Azure App Service Web Apps 또는 타사 호스팅 공급자에 배포(게시)하는 방법을 보여 줍니다. 시리즈에 대한 자세한 내용은 시리즈의 첫 번째 자습서를 참조하세요.

개요

이 자습서에서는 데이터베이스 배포를 위해 프로젝트를 준비하는 방법을 보여줍니다. 애플리케이션의 두 데이터베이스에 있는 데이터베이스 구조와 일부(전부는 아님)의 데이터를 테스트, 스테이징 및 프로덕션 환경에 배포해야 합니다.

일반적으로 애플리케이션을 개발할 때 라이브 사이트에 배포하지 않으려는 데이터베이스에 테스트 데이터를 입력합니다. 그러나 배포하려는 일부 프로덕션 데이터가 있을 수도 있습니다. 이 자습서에서는 Contoso University 프로젝트를 구성하고 배포할 때 올바른 데이터가 포함되도록 SQL 스크립트를 준비합니다.

미리 알림: 자습서를 진행하는 동안 오류 메시지가 표시되거나 작동하지 않는 경우 문제 해결 페이지를 검사 합니다.

SQL Server Express LocalDB

샘플 애플리케이션은 SQL Server Express LocalDB를 사용합니다. SQL Server Express SQL Server 무료 버전입니다. SQL Server 전체 버전과 동일한 데이터베이스 엔진을 기반으로 하므로 개발 중에 일반적으로 사용됩니다. SQL Server Express 사용하여 테스트할 수 있으며 SQL Server 버전마다 다른 기능에 대한 몇 가지 예외를 제외하고 애플리케이션이 프로덕션에서 동일하게 작동합니다.

LocalDB는 데이터베이스를 .mdf 파일로 작업할 수 있는 SQL Server Express 특수 실행 모드입니다. 일반적으로 LocalDB 데이터베이스 파일은 웹 프로젝트의 App_Data 폴더에 보관됩니다. SQL Server Express 사용자 instance 기능을 사용하면 .mdf 파일로 작업할 수도 있지만 사용자 instance 기능은 더 이상 사용되지 않으므로 .mdf 파일 작업에는 LocalDB를 사용하는 것이 좋습니다.

일반적으로 SQL Server Express 프로덕션 웹 애플리케이션에 사용되지 않습니다. 특히 LocalDB는 IIS와 함께 작동하도록 설계되지 않았기 때문에 웹 애플리케이션에서 프로덕션용으로 사용하지 않는 것이 좋습니다.

Visual Studio 2012에서 LocalDB는 기본적으로 Visual Studio와 함께 설치됩니다. Visual Studio 2010 및 이전 버전에서는 Visual Studio에서 기본적으로 LocalDB가 없는 SQL Server Express 설치됩니다. 따라서 이 시리즈의 첫 번째 자습서에서 필수 구성 요소 중 하나로 설치했습니다.

LocalDB를 포함한 SQL Server 버전에 대한 자세한 내용은 SQL Server 데이터베이스 작업 리소스를 참조하세요.

Entity Framework 및 Universal Providers

데이터베이스 액세스의 경우 Contoso University 애플리케이션은 .NET Framework 포함되지 않으므로 애플리케이션과 함께 배포해야 하는 다음 소프트웨어가 필요합니다.

이 소프트웨어는 NuGet 패키지에 포함되어 있으므로 필수 어셈블리가 프로젝트와 함께 배포되도록 프로젝트가 이미 설정되어 있습니다. 링크는 이 자습서에서 다운로드한 시작 프로젝트에 설치된 것보다 최신 버전일 수 있는 이러한 패키지의 현재 버전을 가리킵니다.

Azure 대신 타사 호스팅 공급자에 배포하는 경우 Entity Framework 5.0 이상을 사용해야 합니다. 이전 버전의 Code First 마이그레이션 완전 신뢰가 필요하며 대부분의 호스팅 공급자는 중간 신뢰에서 애플리케이션을 실행합니다. 중간 신뢰에 대한 자세한 내용은 테스트 환경으로 IIS에 배포 자습서를 참조하세요.

애플리케이션 데이터베이스 배포에 대한 Code First 마이그레이션 구성

Contoso University 애플리케이션 데이터베이스는 Code First에서 관리되며 Code First 마이그레이션 사용하여 배포합니다. Code First 마이그레이션 사용하여 데이터베이스 배포에 대한 개요는 이 시리즈의 첫 번째 자습서를 참조하세요.

애플리케이션 데이터베이스를 배포하는 경우 일반적으로 개발 데이터베이스의 모든 데이터가 포함된 개발 데이터베이스를 프로덕션에 배포하는 것은 아닙니다. 그 안에 있는 데이터의 대부분은 테스트 목적으로만 있을 수 있기 때문입니다. 예를 들어 테스트 데이터베이스의 학생 이름은 허구입니다. 반면에 데이터가 전혀 없는 데이터베이스 구조만 배포할 수 없는 경우가 많습니다. 테스트 데이터베이스의 일부 데이터는 실제 데이터일 수 있으며 사용자가 애플리케이션을 사용하기 시작할 때 있어야 합니다. 예를 들어 데이터베이스에 유효한 성적 값 또는 실제 부서 이름이 포함된 테이블이 있을 수 있습니다.

이 일반적인 시나리오를 시뮬레이션하려면 프로덕션 환경에 있을 데이터만 데이터베이스에 삽입하는 Code First 마이그레이션 Seed 메서드를 구성합니다. 이 Seed 메서드는 Code First가 프로덕션에서 데이터베이스를 만든 후 프로덕션에서 실행되므로 테스트 데이터를 삽입하면 안 됩니다.

마이그레이션이 릴리스되기 전의 이전 버전의 Code First에서는 개발 중에 모델 변경이 있을 때마다 데이터베이스를 완전히 삭제하고 처음부터 다시 만들어야 했기 때문에 메서드도 테스트 데이터를 삽입하는 것이 일반적 Seed 이었습니다. Code First 마이그레이션 경우 데이터베이스 변경 후 테스트 데이터가 유지되므로 메서드에 Seed 테스트 데이터를 포함할 필요가 없습니다. 다운로드한 프로젝트는 이니셜라이저 클래스의 메서드에 Seed 모든 데이터를 포함하는 메서드를 사용합니다. 이 자습서에서는 이 이니셜라이저 클래스를 사용하지 않도록 설정하고 마이그레이션을 사용하도록 설정합니다. 그런 다음 프로덕션에 삽입하려는 데이터만 삽입하도록 Migrations 구성 클래스에서 메서드를 업데이트 Seed 합니다.

다음 다이어그램에서는 애플리케이션 데이터베이스의 스키마를 보여 줍니다.

School_database_diagram

이 자습서에서는 사이트가 처음 배포될 때 및 Enrollment 테이블이 비어 있어야 한다고 가정 Student 합니다. 다른 테이블에는 애플리케이션이 라이브 상태가 될 때 미리 로드해야 하는 데이터가 포함되어 있습니다.

이니셜라이저 사용 안 함

Code First 마이그레이션 사용하므로 Code First 이니셜라이저를 DropCreateDatabaseIfModelChanges 사용할 필요가 없습니다. 이 이니셜라이저의 코드는 ContosoUniversity.DAL 프로젝트의 SchoolInitializer.cs 파일에 있습니다. Web.config 파일의 요소에서 appSettings 설정하면 애플리케이션이 처음으로 데이터베이스에 액세스하려고 할 때마다 이 이니셜라이저가 실행됩니다.

<appSettings>
  <add key="Environment" value="Dev" />
  <add key="DatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL" value="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity.DAL" />
</appSettings>

애플리케이션 Web.config 파일을 열고 Code First 이니셜라이저 클래스를 add 지정하는 요소를 제거하거나 주석 처리합니다. 이제 요소는 appSettings 다음과 같습니다.

<appSettings>
  <add key="Environment" value="Dev" />
</appSettings>

참고

이니셜라이저 클래스를 지정하는 또 다른 방법은 Global.asax 파일의 Application_Start 메서드에서 를 호출 Database.SetInitializer 하는 것입니다. 해당 메서드를 사용하여 이니셜라이저를 지정하는 프로젝트에서 마이그레이션을 사용하도록 설정하는 경우 해당 코드 줄을 제거합니다.

참고

Visual Studio 2013 사용하는 경우 2단계와 3단계 사이에 다음 단계를 추가합니다. (a) PMC에서 "update-package entityframework -version 6.1.1"을 입력하여 현재 버전의 EF를 가져옵니다. 그런 다음 (b) 프로젝트를 빌드하여 빌드 오류 목록을 가져와서 수정합니다. 더 이상 존재하지 않는 네임스페이스에 대한 using 문을 삭제하고, 확인을 마우스 오른쪽 단추로 클릭하고 클릭하여 필요한 위치에 using 문을 추가하고 System.Data.EntityState의 발생을 System.Data.Entity.EntityState로 변경합니다.

Code First 마이그레이션 사용

  1. ContosoUniversity 프로젝트(ContosoUniversity.DAL 아님)가 시작 프로젝트로 설정되어 있는지 확인합니다. 솔루션 탐색기 ContosoUniversity 프로젝트를 마우스 오른쪽 단추로 클릭하고 시작 프로젝트로 설정을 선택합니다. Code First 마이그레이션 시작 프로젝트에서 데이터베이스 연결 문자열을 찾습니다.

  2. 도구 메뉴에서 NuGet 패키지 관리자 패키지 관리자>콘솔을 선택합니다.

    Selecting_Package_Manager_Console

  3. 패키지 관리자 콘솔 창 위쪽에서 기본 프로젝트로 ContosoUniversity.DAL을 선택한 다음 프롬프트에서 PM> "enable-migrations"를 입력합니다.

    enable-migrations 명령

    enable-migrations 명령이 인식되지 않는다는 오류가 표시되면 update-package EntityFramework -Reinstall 명령을 입력하고 다시 시도합니다.

    이 명령은 ContosoUniversity.DAL 프로젝트에 Migrations 폴더를 만들고 해당 폴더에 두 개의 파일, 즉 마이그레이션을 구성하는 데 사용할 수 있는 Configuration.cs 파일과 데이터베이스를 만드는 첫 번째 마이그레이션에 대한 InitialCreate.cs 파일을 배치합니다.

    마이그레이션 폴더

    Code First 컨텍스트 클래스가 포함된 프로젝트에서 명령을 실행해야 하므로 패키지 관리자 콘솔enable-migrations기본 프로젝트 드롭다운 목록에서 DAL 프로젝트를 선택했습니다. 해당 클래스가 클래스 라이브러리 프로젝트에 있는 경우 Code First 마이그레이션 솔루션에 대한 시작 프로젝트에서 데이터베이스 연결 문자열을 찾습니다. ContosoUniversity 솔루션에서 웹 프로젝트가 시작 프로젝트로 설정되었습니다. 연결 문자열이 있는 프로젝트를 Visual Studio의 시작 프로젝트로 지정하지 않으려면 PowerShell 명령에서 시작 프로젝트를 지정할 수 있습니다. 명령 구문을 보려면 명령을 get-help enable-migrations입력합니다.

    enable-migrations 이 명령은 데이터베이스가 이미 있으므로 첫 번째 마이그레이션을 자동으로 만들었습니다. 대안은 마이그레이션에서 데이터베이스를 만들도록 하는 것입니다. 이렇게 하려면 마이그레이션을 사용하도록 설정하기 전에 서버 Explorer 또는 SQL Server 개체 탐색기 사용하여 ContosoUniversity 데이터베이스를 삭제합니다. 마이그레이션을 사용하도록 설정한 후 "add-migration InitialCreate" 명령을 입력하여 첫 번째 마이그레이션을 수동으로 만듭니다. 그런 다음 " update-database" 명령을 입력하여 데이터베이스를 만들 수 있습니다.

Seed 메서드 설정

이 자습서에서는 Code First 마이그레이션 Configuration 클래스의 메서드에 Seed 코드를 추가하여 고정 데이터를 추가합니다. Code First 마이그레이션 마이그레이션 후 메서드를 Seed 호출합니다.

메서드는 Seed 모든 마이그레이션 후에 실행되므로 첫 번째 마이그레이션 후 테이블에 이미 데이터가 있습니다. 이 상황을 처리하려면 메서드를 AddOrUpdate 사용하여 이미 삽입된 행을 업데이트하거나 아직 없는 경우 삽입합니다. 메서드가 AddOrUpdate 시나리오에 가장 적합한 선택이 아닐 수도 있습니다. 자세한 내용은 Julie Lerman의 블로그에서 EF 4.3 AddOrUpdate 메서드를 사용하여 주의 하세요.를 참조하세요.

  1. Configuration.cs 파일을 열고 메서드의 주석을 Seed 다음 코드로 바꿉니다.

    var instructors = new List<Instructor>
    {   
        new Instructor { FirstMidName = "Kim",     LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11"), OfficeAssignment = new OfficeAssignment { Location = "Smith 17" } },
        new Instructor { FirstMidName = "Fadi",    LastName = "Fakhouri",    HireDate = DateTime.Parse("2002-07-06"), OfficeAssignment = new OfficeAssignment { Location = "Gowan 27" } },
        new Instructor { FirstMidName = "Roger",   LastName = "Harui",       HireDate = DateTime.Parse("1998-07-01"), OfficeAssignment = new OfficeAssignment { Location = "Thompson 304" } },
        new Instructor { FirstMidName = "Candace", LastName = "Kapoor",      HireDate = DateTime.Parse("2001-01-15") },
        new Instructor { FirstMidName = "Roger",   LastName = "Zheng",       HireDate = DateTime.Parse("2004-02-12") }
    };
    instructors.ForEach(s => context.Instructors.AddOrUpdate(i => i.LastName, s));
    context.SaveChanges();
    
    var departments = new List<Department>
    {
        new Department { Name = "English",     Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 1 },
        new Department { Name = "Mathematics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 2 },
        new Department { Name = "Engineering", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 3 },
        new Department { Name = "Economics",   Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 4 }
    };
    departments.ForEach(s => context.Departments.AddOrUpdate(d => d.Name, s));
    context.SaveChanges();
    
    var courses = new List<Course>
    {
        new Course { CourseID = 1050, Title = "Chemistry",      Credits = 3, DepartmentID = 3 },
        new Course { CourseID = 4022, Title = "Microeconomics", Credits = 3, DepartmentID = 4 },
        new Course { CourseID = 4041, Title = "Macroeconomics", Credits = 3, DepartmentID = 4 },
        new Course { CourseID = 1045, Title = "Calculus",       Credits = 4, DepartmentID = 2 },
        new Course { CourseID = 3141, Title = "Trigonometry",   Credits = 4, DepartmentID = 2 },
        new Course { CourseID = 2021, Title = "Composition",    Credits = 3, DepartmentID = 1 },
        new Course { CourseID = 2042, Title = "Literature",     Credits = 4, DepartmentID = 1 }
    };
    courses.ForEach(s => context.Courses.AddOrUpdate(s));
    context.SaveChanges();
    
    courses[0].Instructors.Add(instructors[0]);
    courses[0].Instructors.Add(instructors[1]);
    courses[1].Instructors.Add(instructors[2]);
    courses[2].Instructors.Add(instructors[2]);
    courses[3].Instructors.Add(instructors[3]);
    courses[4].Instructors.Add(instructors[3]);
    courses[5].Instructors.Add(instructors[3]);
    courses[6].Instructors.Add(instructors[3]);
    context.SaveChanges();
    
  2. 네임스페이스에 List 대한 문이 아직 없 using 으므로 아래에 빨간색 물결선이 있는 참조입니다. 인스턴스 List 중 하나를 마우스 오른쪽 단추로 클릭하고 해결을 클릭한 다음 System.Collections.Generic 사용을 클릭합니다.

    using 문을 사용하여 해결

    이 메뉴 선택은 파일 맨 위에 있는 using 문에 다음 코드를 추가합니다.

    using System.Collections.Generic;
    
  3. Ctrl-Shift-B를 눌러 프로젝트를 빌드합니다.

이제 프로젝트가 ContosoUniversity 데이터베이스를 배포할 준비가 되었습니다. 애플리케이션을 배포한 후 애플리케이션을 처음 실행하고 데이터베이스에 액세스하는 페이지로 이동하면 Code First가 데이터베이스를 만들고 이 Seed 메서드를 실행합니다.

참고

메서드에 Seed 코드를 추가하는 것은 고정 데이터를 데이터베이스에 삽입할 수 있는 여러 가지 방법 중 하나입니다. 대안은 각 마이그레이션 클래스의 및 Down 메서드에 Up 코드를 추가하는 것입니다. 및 Down 메서드에는 Up 데이터베이스 변경 내용을 구현하는 코드가 포함되어 있습니다. 이러한 예제는 데이터베이스 업데이트 배포 자습서에 표시됩니다.

메서드를 사용하여 Sql SQL 문을 실행하는 코드를 작성할 수도 있습니다. 예를 들어 부서 테이블에 예산 열을 추가하고 마이그레이션의 일부로 모든 부서 예산을 $1,000.00로 초기화하려는 경우 해당 마이그레이션에 대한 메서드에 다음 코드 Up 줄을 추가할 수 있습니다.

Sql("UPDATE Department SET Budget = 1000");

멤버 자격 데이터베이스 배포를 위한 스크립트 만들기

Contoso University 애플리케이션은 ASP.NET 멤버 자격 시스템을 사용하고 인증을 형성하여 사용자를 인증하고 권한을 부여합니다. 크레딧 업데이트 페이지는 관리자 역할에 있는 사용자만 액세스할 수 있습니다.

애플리케이션을 실행하고 과정을 클릭한 다음 크레딧 업데이트를 클릭합니다.

크레딧 업데이트를 클릭합니다.

크레딧 업데이트 페이지에 관리 권한이 필요하기 때문에 로그인 페이지가 나타납니다.

관리자를 사용자 이름으로 입력하고 암호로 devpwd를 입력하고 로그인을 클릭합니다.

로그인 페이지

크레딧 업데이트 페이지가 나타납니다.

크레딧 업데이트 페이지

사용자 및 역할 정보는 Web.config 파일의 DefaultConnection 연결 문자열에 의해 지정된 aspnet-ContosoUniversity 데이터베이스에 있습니다.

이 데이터베이스는 Entity Framework Code First에서 관리되지 않으므로 마이그레이션을 사용하여 배포할 수 없습니다. dbDacFx 공급자를 사용하여 데이터베이스 스키마를 배포하고, 데이터베이스 테이블에 초기 데이터를 삽입하는 스크립트를 실행하도록 게시 프로필을 구성합니다.

참고

Visual Studio 2013 새로운 ASP.NET 멤버 자격 시스템(현재 ASP.NET IDENTITY)이 도입되었습니다. 새 시스템을 사용하면 애플리케이션 테이블과 멤버 자격 테이블을 모두 동일한 데이터베이스에 유지할 수 있으며 Code First 마이그레이션 사용하여 둘 다 배포할 수 있습니다. 샘플 애플리케이션은 Code First 마이그레이션 사용하여 배포할 수 없는 이전 ASP.NET 멤버 자격 시스템을 사용합니다. 이 멤버 자격 데이터베이스를 배포하는 절차는 애플리케이션이 Entity Framework Code First에서 만들지 않은 SQL Server 데이터베이스를 배포해야 하는 다른 시나리오에도 적용됩니다.

여기서도 일반적으로 개발 중인 프로덕션에서 동일한 데이터를 원하지 않습니다. 사이트를 처음으로 배포하는 경우 테스트를 위해 만든 사용자 계정의 대부분 또는 전부를 제외하는 것이 일반적입니다. 따라서 다운로드한 프로젝트에는 개발 사용자가 있는 aspnet-ContosoUniversity.mdf 와 프로덕션 사용자가 있는 aspnet-ContosoUniversity-Prod.mdf 라는 두 개의 멤버 자격 데이터베이스가 있습니다. 이 자습서의 경우 사용자 이름은 두 데이터베이스( adminnonadmin)에서 동일합니다. 두 사용자 모두 개발 데이터베이스에 암호가 개발 되고 프로덕션 데이터베이스의 prodpwd 가 있습니다.

개발 사용자를 테스트 환경에 배포하고 프로덕션 사용자를 스테이징 및 프로덕션에 배포합니다. 이렇게 하려면 이 자습서에서 두 개의 SQL 스크립트를 만듭니다. 하나는 개발용이고 다른 하나는 프로덕션용이며, 이후 자습서에서는 게시 프로세스를 구성하여 실행합니다.

참고

멤버 자격 데이터베이스는 계정 암호의 해시를 저장합니다. 한 컴퓨터에서 다른 컴퓨터로 계정을 배포하려면 해시 루틴이 대상 서버에서 원본 컴퓨터와 다른 해시를 생성하지 않도록 해야 합니다. 기본 알고리즘을 변경하지 않는 한 ASP.NET Universal Providers 사용할 때 동일한 해시를 생성합니다. 기본 알고리즘은 HMACSHA256이며 Web.config 파일에서 machineKey 요소의 유효성 검사 특성에 지정됩니다.

SSMS(SQL Server Management Studio)를 사용하거나 타사 도구를 사용하여 수동으로 데이터 배포 스크립트를 만들 수 있습니다. 이 자습서의 나머지 부분에서는 SSMS에서 수행하는 방법을 보여 주지만 SSMS를 설치하고 사용하지 않으려면 프로젝트의 완료된 버전에서 스크립트를 가져와서 솔루션 폴더에 저장하는 섹션으로 건너뛸 수 있습니다.

SSMS를 설치하려면 다운로드 센터: Microsoft SQL Server 2012 Express에서ENU\x64\SQLManagementStudio_x64_ENU.exe클릭하거나 를ENU\x86\SQLManagementStudio_x86_ENU.exe 설치합니다. 시스템에 대해 잘못된 항목을 선택하면 설치에 실패하고 다른 하나를 시도할 수 있습니다.

(600MB 다운로드입니다. 설치하는 데 시간이 오래 걸릴 수 있으며 컴퓨터를 다시 부팅해야 합니다.)

SQL Server 설치 센터의 첫 번째 페이지에서 새 SQL Server 독립 실행형 설치를 클릭하거나 기존 설치에 기능을 추가하고 지침에 따라 기본 선택 사항을 적용합니다.

개발 데이터베이스 스크립트 만들기

  1. SSMS를 실행합니다.

  2. 서버에 연결 대화 상자에서 서버 이름으로(localdb)\v11.0을 입력하고 인증Windows 인증으로 설정한 상태로 두고 연결을 클릭합니다.

    SSMS 서버에 연결

  3. 개체 탐색기 창에서 데이터베이스를 확장하고 aspnet-ContosoUniversity를 마우스 오른쪽 단추로 클릭하고 작업을 클릭한 다음 스크립트 생성을 클릭합니다.

    SSMS 스크립트 생성

  4. 스크립트 생성 및 게시 대화 상자에서 스크립팅 옵션 설정을 클릭합니다.

    기본값은 전체 데이터베이스 및 모든 데이터베이스 개체 스크립트이며 원하는 항목이므로 개체 선택 단계를 건너뛸 수 있습니다.

  5. 고급을 클릭합니다.

    SSMS 스크립팅 옵션

  6. 고급 스크립팅 옵션 대화 상자에서 스크립트할 데이터 형식까지 아래로 스크롤하고 드롭다운 목록에서 데이터 전용 옵션을 클릭합니다.

  7. 스크립트 USE DATABASE를 False로 변경합니다. USE 문은 Azure SQL Database에 유효하지 않으며 테스트 환경에서 SQL Server Express 배포할 필요가 없습니다.

    SSMS 스크립트 데이터만, USE 문 없음

  8. 확인을 클릭합니다.

  9. 스크립트 생성 및 게시 대화 상자에서 파일 이름 상자는 스크립트를 만들 위치를 지정합니다. 솔루션 폴더의 경로(ContosoUniversity.sln 파일이 있는 폴더) 및 파일 이름을 aspnet-data-dev.sql로 변경합니다.

  10. 다음을 클릭하여 요약 탭으로 이동한 다음, 다음을 다시 클릭하여 스크립트를 만듭니다.

    만든 SSMS 스크립트

  11. Finish를 클릭합니다.

프로덕션 데이터베이스 스크립트 만들기

프로덕션 데이터베이스를 사용하여 프로젝트를 실행하지 않았으므로 아직 LocalDB instance 연결되지 않았습니다. 따라서 먼저 데이터베이스를 연결해야 합니다.

  1. SSMS 개체 탐색기데이터베이스를 마우스 오른쪽 단추로 클릭하고 연결을 클릭합니다.

    SSMS 연결

  2. 데이터베이스 연결 대화 상자에서 추가를 클릭한 다음 App_Data 폴더의aspnet-ContosoUniversity-Prod.mdf 파일로 이동합니다.

    SSMS 연결할 .mdf 파일 추가

  3. 확인을 클릭합니다.

  4. 이전에 사용한 것과 동일한 절차에 따라 프로덕션 파일에 대한 스크립트를 만듭니다. 스크립트 파일 이름을 aspnet-data-prod.sql로 지정합니다.

요약

이제 두 데이터베이스를 모두 배포할 준비가 되었으며 솔루션 폴더에 두 개의 데이터 배포 스크립트가 있습니다.

데이터 배포 스크립트

다음 자습서에서는 배포에 영향을 주는 프로젝트 설정을 구성하고 배포된 애플리케이션에서 달라야 하는 설정에 대해 자동 Web.config 파일 변환을 설정합니다.

추가 정보

NuGet에 대한 자세한 내용은 NuGet 및 NuGet 설명서를 사용하여 프로젝트 라이브러리 관리를 참조하세요. NuGet을 사용하지 않으려면 NuGet 패키지를 분석하여 설치 시 수행하는 작업을 확인하는 방법을 알아봅니다. 예를 들어 Web.config 변환을 구성하고 빌드 시 실행되도록 PowerShell 스크립트를 구성할 수 있습니다. NuGet의 작동 방식에 대한 자세한 내용은 패키지 만들기 및 게시 및구성 파일 및 소스 코드 변환을 참조하세요.