다음을 통해 공유


Visual Studio를 사용하여 웹 배포 ASP.NET: 프로덕션에 배포

작성자 : Tom Dykstra

시작 프로젝트 다운로드

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

개요

이 자습서에서는 Visual Studio 원클릭 게시 기능을 사용하여 Microsoft Azure 계정을 설정하고, 스테이징 및 프로덕션 환경을 만들고, ASP.NET 웹 애플리케이션을 스테이징 및 프로덕션 환경에 배포합니다.

원하는 경우 타사 호스팅 공급자에 배포할 수 있습니다. 이 자습서에 설명된 대부분의 절차는 호스팅 공급자 또는 Azure에 대해 동일합니다. 단, 각 공급자에는 계정 및 웹 사이트 관리를 위한 고유한 사용자 인터페이스가 있습니다. Microsoft.com 웹 사이트의 공급자 갤러리에서 호스팅 공급자를 찾을 수 있습니다.

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

Microsoft Azure 계정 가져오기

Azure 계정이 아직 없는 경우 몇 분 만에 평가판 계정을 만들 수 있습니다. 자세한 내용은 Azure 평가판을 참조하세요.

스테이징 환경 만들기

참고

이 자습서가 작성된 이후 Azure App Service 스테이징 및 프로덕션 환경을 만들기 위한 많은 프로세스를 자동화하는 새로운 기능을 추가했습니다. Azure App Service 웹앱에 대한 스테이징 환경 설정을 참조하세요.

테스트 환경에 배포 자습서에 설명된 대로 가장 안정적인 테스트 환경은 프로덕션 웹 사이트와 같은 호스팅 공급자의 웹 사이트입니다. 많은 호스팅 공급자에서 상당한 추가 비용에 대해 이 이점을 평가해야 하지만 Azure에서는 추가 무료 웹앱을 스테이징 앱으로 만들 수 있습니다. 또한 데이터베이스가 필요하며 프로덕션 데이터베이스의 비용에 대한 추가 비용은 없음 또는 최소가 됩니다. Azure에서는 각 데이터베이스가 아닌 사용하는 데이터베이스 스토리지의 양에 대한 비용을 지불하며 스테이징에 사용할 추가 스토리지의 양은 최소화됩니다.

테스트 환경에 배포 자습서에 설명된 대로 스테이징 및 프로덕션에서는 두 데이터베이스를 하나의 데이터베이스에 배포합니다. 별도로 유지하려는 경우 각 환경에 대해 추가 데이터베이스를 만들고 게시 프로필을 만들 때 각 데이터베이스에 대해 올바른 대상 문자열을 선택한다는 점을 제외하고 프로세스는 동일합니다.

자습서의 이 섹션에서는 스테이징 환경에 사용할 웹앱 및 데이터베이스를 만들고 프로덕션 환경을 만들고 배포하기 전에 스테이징 및 테스트에 배포합니다.

참고

다음 단계에서는 Azure 관리 포털을 사용하여 Azure App Service 웹앱을 만드는 방법을 보여 줍니다. 최신 버전의 Azure SDK에서는 Server Explorer 사용하여 Visual Studio를 떠나지 않고도 이 작업을 수행할 수 있습니다. Visual Studio 2013 게시 대화 상자에서 직접 웹앱을 만들 수도 있습니다. 자세한 내용은 Azure App Service ASP.NET 웹앱 만들기를 참조하세요.

  1. Azure 관리 포털에서 웹 사이트를 클릭한 다음 새로 만들기를 클릭합니다.

  2. 웹 사이트를 클릭한 다음 사용자 지정 만들기를 클릭합니다.

    새 웹 사이트 - 사용자 지정 만들기 마법사가 열립니다. 사용자 지정 만들기 마법사를 사용하면 웹 사이트와 데이터베이스를 동시에 만들 수 있습니다.

  3. 마법사의 웹 사이트 만들기 단계에서 애플리케이션의 스테이징 환경에 대한 고유 URL 로 사용할 문자열을 URL 상자에 입력합니다. 예를 들어 ContosoUniversity-staging123을 입력합니다(ContosoUniversity-staging가 수행되는 경우 고유하게 만들기 위해 끝에 난수를 포함).

    전체 URL은 여기에 입력한 문자열과 텍스트 상자 옆에 표시되는 접미사로 구성됩니다.

  4. 지역 드롭다운 목록에서 가장 가까운 지역을 선택합니다.

    이 설정은 웹앱이 실행될 데이터 센터를 지정합니다.

  5. 데이터베이스 드롭다운 목록에서 새 SQL 데이터베이스 만들기를 선택합니다.

  6. DB 연결 문자열 이름 상자에 기본값 DefaultConnection을 그대로 둡니다.

  7. 상자 아래쪽의 오른쪽을 가리키는 화살표를 클릭합니다.

    다음 그림에서는 샘플 값이 포함된 웹 사이트 만들기 대화 상자를 보여 줍니다. 입력한 URL과 지역은 다릅니다.

    웹 사이트 만들기 단계

    마법사가 Specify database settings 단계로 진행합니다.

  8. 이름 상자에 ContosoUniversity와 난수를 입력하여 고유하게 만듭니다(예: ContosoUniversity123).

  9. 서버 상자에서 새 SQL Database 서버를 선택합니다.

  10. 관리자 이름 및 암호를 입력합니다.

    여기에 기존 이름과 암호를 입력하지 않습니다. 나중에 데이터베이스에 액세스할 때 사용할 새 이름과 암호를 입력해야 합니다.

  11. 지역 상자에서 웹앱에 대해 선택한 것과 동일한 지역을 선택합니다.

    웹 서버와 데이터베이스 서버를 동일한 지역에 유지하면 최상의 성능을 제공하고 비용을 최소화할 수 있습니다.

  12. 상자 아래쪽에 있는 검사 표시를 클릭하여 완료되었음을 나타냅니다.

    다음 그림에서는 샘플 값이 포함된 데이터베이스 설정 지정 대화 상자를 보여 줍니다. 입력한 값이 다를 수 있습니다.

    새 웹 사이트의 데이터베이스 설정 단계 - 데이터베이스를 사용하여 만들기 마법사

    관리 포털이 웹 사이트 페이지로 돌아오면 상태 열에 웹앱이 만들어지고 있음을 보여 줍니다. 잠시 후(일반적으로 1분 미만) 상태 열에 웹앱이 성공적으로 만들어졌음이 표시됩니다. 왼쪽의 탐색 모음에서 계정에 있는 웹앱 수가 웹 사이트 아이콘 옆에 표시되고 데이터베이스 수가 SQL Database 아이콘 옆에 표시됩니다.

    관리 포털의 웹 사이트 페이지, 만든 웹 사이트

    웹앱 이름은 그림의 예제 앱과 다릅니다.

스테이징에 애플리케이션 배포

이제 스테이징 환경에 대한 웹앱 및 데이터베이스를 만들었으므로 프로젝트를 배포할 수 있습니다.

참고

이러한 지침은 . publishsettings 파일을 다운로드하여 게시 프로필을 만드는 방법을 보여 줍니다. 이 파일은 Azure뿐만 아니라 타사 호스팅 공급자에 대해서도 작동합니다. 최신 Azure SDK를 사용하면 Visual Studio에서 Azure에 직접 연결하고 Azure 계정에 있는 웹앱 목록에서 선택할 수도 있습니다. Visual Studio 2013 웹 게시 대화 상자 또는 서버 Explorer 창에서 Azure에 로그인할 수 있습니다. 자세한 내용은 Azure App Service ASP.NET 웹앱 만들기를 참조하세요.

.publishsettings 파일 다운로드

  1. 방금 만든 웹앱의 이름을 클릭합니다.

    사이트를 클릭하여 대시보드로 이동합니다.

  2. 대시보드 탭의 빠른 보기에서 게시 프로필 다운로드를 클릭합니다.

    게시 프로필 다운로드 링크

    이 단계에서는 웹앱에 애플리케이션을 배포하기 위해 필요한 모든 설정이 포함된 파일을 다운로드합니다. 이 정보를 수동으로 입력할 필요가 없도록 이 파일을 Visual Studio로 가져옵니다.

  3. Visual Studio에서 액세스할 수 있는 폴더에 .publishsettings 파일을 저장합니다.

    .publishsettings 파일 저장

    경고

    보안 - .publishsettings 파일에는 Azure 구독 및 서비스를 관리하는 데 사용되는 자격 증명(인코딩되지 않음)이 포함되어 있습니다. 이 파일의 보안을 유지하는 가장 좋은 방법은 소스 디렉터리 밖(예: 라이브러리\문서 폴더)에 임시로 파일을 저장한 다음 일단 가져오기가 완료되면 삭제하는 것입니다. .publishsettings 파일에 대한 액세스 권한을 얻는 악의적인 사용자는 Azure 서비스를 편집, 만들기 및 삭제할 수 있습니다.

게시 프로필 만들기

  1. Visual Studio의 솔루션 탐색기 ContosoUniversity 프로젝트를 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 게시를 선택합니다.

    웹 게시 마법사가 열립니다.

  2. 프로필 탭을 클릭합니다.

  3. 가져오기를 클릭합니다.

  4. 이전에 다운로드한 .publishsettings 파일로 이동한 다음 열기를 클릭합니다.

    게시 설정 가져오기 대화 상자

  5. 연결 탭에서 연결 유효성 검사를 클릭하여 설정이 올바른지 확인합니다.

    연결의 유효성을 검사하면 연결 유효성 검사 단추 옆에 녹색 검사 표시가 표시됩니다.

    일부 호스팅 공급자의 경우 연결 유효성 검사를 클릭하면 인증서 오류 대화 상자가 표시될 수 있습니다. 이 경우 서버 이름이 예상한 이름인지 확인합니다. 서버 이름이 올바르면 Visual Studio의 이후 세션에 대해 이 인증서 저장을 선택하고 수락을 클릭합니다. (이 오류는 호스팅 공급자가 배포하는 URL에 대한 SSL 인증서 구매 비용을 방지하기 위해 선택했음을 의미합니다. 유효한 인증서를 사용하여 보안 연결을 설정하려면 호스팅 공급자에게 문의하세요.)

  6. 다음을 클릭합니다.

    연결 성공 아이콘 및 연결 탭의 다음 단추

  7. 설정 탭에서 파일 게시 옵션을 확장한 다음, App_Data 폴더에서 파일 제외를 선택합니다.

    파일 게시 옵션 아래의 다른 옵션에 대한 자세한 내용은 IIS에 배포 자습서를 참조하세요. 이 단계의 결과와 다음 데이터베이스 구성 단계를 보여 주는 스크린샷은 데이터베이스 구성 단계의 끝에 있습니다.

  8. 데이터베이스 섹션의 DefaultConnection 에서 멤버 자격 데이터베이스에 대한 데이터베이스 배포를 구성 합니다 .

    1. 데이터베이스 업데이트를 선택합니다.

      DefaultConnection 바로 아래의 원격 연결 문자열 상자는 .publishsettings 파일의 연결 문자열로 채워집니다. 연결 문자열에는 .pubxml 파일의 일반 텍스트로 저장된 SQL Server 자격 증명이 포함됩니다. 영구적으로 저장하지 않으려는 경우 데이터베이스가 배포된 후 게시 프로필에서 제거하고 대신 Azure에 저장할 수 있습니다. 자세한 내용은 Source on Scott Hanselman의 블로그에서 Azure에 배포할 때 ASP.NET 데이터베이스 연결 문자열을 안전하게 유지하는 방법을 참조하세요 . 2. 데이터베이스 업데이트 구성을 클릭합니다. 3. 데이터베이스 업데이트 구성 대화 상자에서 SQL 스크립트 추가를 클릭합니다. 4. SQL 스크립트 추가 상자에서 이전에 솔루션 폴더에 저장한 aspnet-data-prod.sql 스크립트로 이동한 다음 열기를 클릭합니다. 5. 데이터베이스 업데이트 구성 대화 상자를 닫습니다.

  9. 데이터베이스 섹션의 SchoolContext에서 Code First 마이그레이션 실행(애플리케이션 시작 시 실행)을 선택합니다.

    Visual Studio는 클래스에 대해 DbContext데이터베이스 업데이트 대신 실행 Code First 마이그레이션 표시합니다. 마이그레이션 대신 dbDacFx 공급자를 사용하여 클래스를 사용하여 DbContext 액세스하는 데이터베이스를 배포하려면 Visual Studio용 웹 배포 FAQ 및 MSDN의 ASP.NET 마이그레이션 없이 Code First 데이터베이스 배포 어떻게 할까요? 참조하세요.

    이제 설정 탭은 다음 예제와 같습니다.

    스테이징을 위한 설정 탭

  10. 다음 단계를 수행하여 프로필을 저장하고 이름을 준비로 바꿉니다.

    1. 프로필 탭을 클릭한 다음 프로필 관리를 클릭합니다.

    2. 가져오기는 FTP용 프로필과 웹 배포용 프로필 등 두 개의 새 프로필을 만들었습니다. 웹 배포 프로필을 구성했습니다. 이 프로필의 이름을 준비로 바꿉니다.

      프로필 이름을 스테이징으로 이름 바꾸기

    3. 웹 게시 프로필 편집 대화 상자를 닫습니다.

    4. 웹 게시 마법사를 닫습니다.

환경 표시기에 대한 게시 프로필 변환 구성

참고

이 섹션에서는 환경 표시기에 대한 Web.config 변환을 설정하는 방법을 보여줍니다. 표시기가 요소에 <appSettings> 있으므로 Azure App Service 배포할 때 변환을 지정하는 또 다른 대안이 있습니다. 자세한 내용은 Azure에서 Web.config 설정 지정을 참조하세요.

  1. 솔루션 탐색기속성을 확장한 다음 PublishProfiles를 확장합니다.

  2. Staging.pubxml을 마우스 오른쪽 단추로 클릭한 다음 구성 변환 추가를 클릭합니다.

    스테이징을 위한 구성 변환 추가

    Visual Studio는 Web.Staging.config 변환 파일을 만들고 엽니다.

  3. Web.Staging.config 변환 파일에서 여 configuration 는 태그 바로 뒤에 다음 코드를 삽입합니다.

    <appSettings>
        <add key="Environment" value="Prod" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
    </appSettings>
    

    스테이징 게시 프로필을 사용하는 경우 이 변환은 환경 표시기를 "Prod"로 설정합니다. 배포된 웹앱에는 "Contoso University" H1 제목 다음에 "(Dev)" 또는 "(Test)"와 같은 접미사가 표시되지 않습니다.

  4. Web.Staging.config 파일을 마우스 오른쪽 단추로 클릭하고 변환 미리 보기를 클릭하여 코딩한 변환이 예상된 변경 내용을 생성하는지 확인합니다.

    Web.config 미리 보기 창에는Web.Release.config변환과 Web.Staging.config 변환을 모두 적용한 결과가 표시됩니다.

테스트 앱의 공용 사용 방지

스테이징 앱의 중요한 고려 사항은 인터넷에서 라이브 상태이지만 대중이 사용하지 않기를 바란다는 것입니다. 사람들이 찾아서 사용할 가능성을 최소화하기 위해 다음 방법 중 하나 이상을 사용할 수 있습니다.

  • 스테이징을 테스트하는 데 사용하는 IP 주소에서만 스테이징 앱에 액세스할 수 있도록 허용하는 방화벽 규칙을 설정합니다.
  • 추측할 수 없는 난독 처리를 한 URL을 사용합니다.
  • robots.txt 파일을 만들어 검색 엔진이 테스트 앱을 크롤링하지 않도록 하고 검색 결과에 링크를 보고합니다.

이러한 방법 중 첫 번째는 가장 효과적이지만 Azure App Service 대신 Azure Cloud Service에 배포해야 하므로 이 자습서에서는 다루지 않습니다. Azure의 Cloud Services 및 IP 제한에 대한 자세한 내용은 Azure에서 제공하는 컴퓨팅 호스팅 옵션특정 IP 주소가 웹 역할에 액세스하지 못하도록 차단을 참조하세요. 타사 호스팅 공급자에 배포하는 경우 공급자에게 문의하여 IP 제한을 구현하는 방법을 알아보세요.

이 자습서에서는 robots.txt 파일을 만듭니다.

  1. 솔루션 탐색기 ContosoUniversity 프로젝트를 마우스 오른쪽 단추로 클릭하고 새 항목 추가를 클릭합니다.

  2. robots.txt라는 새 텍스트 파일을 만들고 다음 텍스트를 입력합니다.

    User-agent: *
    Disallow: /
    

    줄은 파일의 규칙이 모든 검색 엔진 웹 크롤러(로봇)에 적용되도록 검색 엔진에 알리고Disallow, 줄은 User-agent 사이트의 페이지를 크롤링하지 않음을 지정합니다.

    검색 엔진이 프로덕션 앱을 카탈로그화하려고 하므로 프로덕션 배포에서 이 파일을 제외해야 합니다. 이렇게 하려면 만들 때 프로덕션 게시 프로필에서 설정을 구성합니다.

스테이징에 배포

  1. Contoso University 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시를 클릭하여 웹 게시 마법사를 엽니다.

  2. 스테이징 프로필이 선택되어 있는지 확인합니다.

  3. 게시를 클릭합니다.

    출력 창에 수행된 배포 작업이 표시되고 성공적인 배포 완료가 보고됩니다. 기본 브라우저가 배포된 웹앱의 URL로 자동으로 열립니다.

스테이징 환경에서 테스트

환경 표시기가 없습니다(환경 표시기에서 Web.config 변환이 성공했음을 보여 주는 H1 제목 다음에는 "(테스트)" 또는 "(Dev)"가 없습니다.

홈 페이지 스테이징

학생 페이지를 실행하여 배포된 데이터베이스에 학생이 없는지 확인합니다.

강사 페이지를 실행하여 Code First가 강사 데이터를 사용하여 데이터베이스를 시드했는지 확인합니다.

학생 메뉴에서 학생 추가를 선택하고 학생을 추가한 다음 학생 페이지에서 새 학생을 확인하여 데이터베이스에 성공적으로 쓸 수 있는지 확인합니다.

과정 페이지에서 크레딧 업데이트를 클릭합니다. 크레딧 업데이트 페이지에는 관리자 권한이 필요하므로 로그인 페이지가 표시됩니다. 이전에 만든 관리자 계정 자격 증명("admin" 및 "prodpwd")을 입력합니다. 이전 자습서에서 만든 관리자 계정이 테스트 환경에 올바르게 배포되었는지 확인하는 크레딧 업데이트 페이지가 표시됩니다.

잘못된 URL을 요청하여 ELMAH가 추적할 오류를 발생시킨 다음 ELMAH 오류 보고서를 요청합니다. 타사 호스팅 공급자에 배포하는 경우 이전 자습서에서 보고서가 비어 있는 것과 같은 이유로 보고서가 비어 있음을 알 수 있습니다. 호스팅 공급자의 계정 관리 도구를 사용하여 ELMAH가 로그 폴더에 쓸 수 있도록 폴더 권한을 구성해야 합니다.

만든 애플리케이션은 이제 프로덕션에 사용할 것과 같은 웹앱의 클라우드에서 실행됩니다. 모든 것이 올바르게 작동하므로 다음 단계는 프로덕션에 배포하는 것입니다.

프로덕션 환경에 배포

프로덕션 웹앱을 만들고 프로덕션에 배포하는 프로세스는 배포에서 robots.txt 제외해야 한다는 점을 제외하고 스테이징과 동일합니다. 이렇게 하려면 게시 프로필 파일을 편집합니다.

프로덕션 환경 및 프로덕션 게시 프로필 만들기

  1. 준비에 사용한 것과 동일한 절차에 따라 Azure에서 프로덕션 웹앱 및 데이터베이스를 만듭니다.

    데이터베이스를 만들 때 이전에 만든 동일한 서버에 배치하거나 새 서버를 만들도록 선택할 수 있습니다.

  2. .publishsettings 파일을 다운로드합니다.

  3. 스테이징에 사용한 것과 동일한 절차에 따라 프로덕션 .publishsettings 파일을 가져와 게시 프로필을 만듭니다.

    설정 탭의 데이터베이스 섹션에 있는 DefaultConnection에서 데이터 배포 스크립트 구성해야 합니다.

  4. 게시 프로필의 이름을 프로덕션으로 바꿉 니다.

  5. 스테이징에 사용한 것과 동일한 절차에 따라 환경 표시기에 대한 게시 프로필 변환을 구성합니다.

.pubxml 파일을 편집하여 robots.txt

게시 프로필 파일의 이름은 <profilename.pubxml>이며 PublishProfiles 폴더에 있습니다. PublishProfiles 폴더는 C# 웹 애플리케이션 프로젝트의 속성 폴더 아래, VB 웹 애플리케이션 프로젝트의 내 프로젝트 폴더 아래 또는 웹앱 프로젝트의 App_Data 폴더 아래에 있습니다. 각 .pubxml 파일에는 하나의 게시 프로필에 적용되는 설정이 포함되어 있습니다. 웹 게시 마법사에 입력한 값은 이러한 파일에 저장되며, 편집하여 Visual Studio UI에서 사용할 수 없는 설정을 만들거나 변경할 수 있습니다.

기본적으로 .pubxml 파일은 게시 프로필을 만들 때 프로젝트에 포함되지만 프로젝트에서 제외할 수 있으며 Visual Studio에서는 계속 사용합니다. Visual Studio는 프로젝트에 포함되는지 여부에 관계없이 .pubxml 파일의 PublishProfiles 폴더를 찾습니다.

.pubxml 파일에는 .pubxml.user 파일이 있습니다. .pubxml.user 파일에는 암호 저장 옵션을 선택한 경우 암호화된 암호가 포함되어 있으며 기본적으로 프로젝트에서 제외됩니다.

.pubxml 파일에는 특정 게시 프로필과 관련된 설정이 포함되어 있습니다. 모든 프로필에 적용되는 설정을 구성하려면 .wpp.targets 파일을 만들 수 있습니다. 빌드 프로세스는 이러한 파일을 .csproj 또는 .vbproj 프로젝트 파일로 가져오므로 프로젝트 파일에서 구성할 수 있는 대부분의 설정을 이러한 파일에서 구성할 수 있습니다. .pubxml 파일 및 .wpp.targets 파일에 대한 자세한 내용은 방법: 게시 프로필에서 배포 설정 편집(.pubxml) 파일 및 Visual Studio 웹 프로젝트의 .wpp.targets 파일을 참조하세요.

  1. 솔루션 탐색기속성을 확장하고 PublishProfiles를 확장합니다.

  2. Production.pubxml을 마우스 오른쪽 단추로 클릭하고 열기를 클릭합니다.

    .pubxml 파일 열기

  3. Production.pubxml을 마우스 오른쪽 단추로 클릭하고 열기를 클릭합니다.

  4. PropertyGroup 는 요소 바로 앞에 다음 줄을 추가합니다.

    <ExcludeFilesFromDeployment>
        robots.txt
    </ExcludeFilesFromDeployment>
    

    .pubxml 파일은 이제 다음 예제와 같습니다.

    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <WebPublishMethod>MSDeploy</WebPublishMethod>
        <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
        <LastUsedPlatform>Any CPU</LastUsedPlatform>
        <SiteUrlToLaunchAfterPublish>http://contosou-staging.azurewebsites.net</SiteUrlToLaunchAfterPublish>
        <ExcludeApp_Data>True</ExcludeApp_Data>
        <MSDeployServiceURL>waws-prod-bay-001.publish.azurewebsites.windows.net:443</MSDeployServiceURL>
        <DeployIisAppPath>contosou-staging</DeployIisAppPath>
        <RemoteSitePhysicalPath />
        <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
        <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
        <UserName>[username]</UserName>
        <_SavePWD>True</_SavePWD>
        <PublishDatabaseSettings>
          <!-- database settings removed -->
        </PublishDatabaseSettings>
        <ExcludeFilesFromDeployment>
            robots.txt
        </ExcludeFilesFromDeployment>
      </PropertyGroup>
      <ItemGroup>
        <MSDeployParameterValue Include="$(DeployParameterPrefix)DefaultConnection-Web.config Connection String">
          <ParameterValue>Data Source=tcp:sk0264hvc9.database.windows.net,1433;Initial Catalog=ContosoUniversity-staging;User Id=CU-staging-admin@sk0264hvc9;Password=</ParameterValue>
        </MSDeployParameterValue>
        <MSDeployParameterValue Include="$(DeployParameterPrefix)SchoolContext-Web.config Connection String">
          <ParameterValue>Data Source=tcp:sk0264hvc9.database.windows.net,1433;Initial Catalog=ContosoUniversity-staging;User Id=CU-staging-admin@sk0264hvc9;Password=</ParameterValue>
        </MSDeployParameterValue>
      </ItemGroup>
    </Project>
    

    파일 및 폴더를 제외하는 방법에 대한 자세한 내용은 Visual Studio용 웹 배포 FAQ 및 MSDN의 ASP.NET 특정 파일 또는 폴더를 배포에서 제외할 수 있나요?를 참조하세요.

프로덕션 환경에 배포

  1. 웹 게시 마법사를 열고 프로덕션 게시 프로필이 선택되어 있는지 확인한 다음 미리 보기 탭에서 미리 보기 시작을 클릭하여 robots.txt 파일이 프로덕션 앱에 복사되지 않는지 확인합니다.

    프로덕션에 게시할 파일 미리 보기

    복사할 파일 목록을 검토합니다. .aspx.cs, .aspx.designer.cs, Master.csMaster.designer.cs 파일을 포함한 모든 .cs 파일이 생략된 것을 볼 수 있습니다. 이 코드는 모두 bin 폴더에서 찾을 수 있는 ContosoUniversity.dllContosoUniversity.pdb 파일로 컴파일되었습니다. 애플리케이션을 실행하는 데 .dll 필요하고 애플리케이션을 실행하는 데 필요한 파일만 배포하도록 이전에 지정했기 때문에 .cs 파일이 대상 환경에 복사되지 않았습니다. obj 폴더와 ContosoUniversity.csproj.csproj.user 파일은 동일한 이유로 생략됩니다.

    게시를 클릭하여 프로덕션 환경에 배포합니다.

  2. 스테이징에 사용한 것과 동일한 절차에 따라 프로덕션 환경에서 테스트합니다.

    URL 및 robots.txt 파일이 없는 경우를 제외하고 모든 것이 스테이징과 동일합니다.

요약

이제 웹앱을 성공적으로 배포하고 테스트했으며 인터넷을 통해 공개적으로 사용할 수 있습니다.

홈페이지 프로덕션

다음 자습서에서는 애플리케이션 코드를 업데이트하고 변경 사항을 테스트, 스테이징 및 프로덕션 환경에 배포합니다.

참고

애플리케이션이 프로덕션 환경에서 사용 중인 동안 복구 계획을 구현해야 합니다. 즉, 프로덕션 앱에서 보안 스토리지 위치로 데이터베이스를 주기적으로 백업해야 하며 여러 세대의 이러한 백업을 유지해야 합니다. 데이터베이스를 업데이트하는 경우 변경 바로 전에 에서 백업 복사본을 만들어야 합니다. 그런 다음, 실수를 저지르고 프로덕션에 배포할 때까지 데이터베이스를 검색하지 않으면 데이터베이스가 손상되기 전의 상태로 복구할 수 있습니다. 자세한 내용은 Azure SQL Database Backup 및 복원을 참조하세요.

참고

이 자습서에서는 배포하는 SQL Server 버전이 Azure SQL 데이터베이스입니다. 배포 프로세스는 다른 버전의 SQL Server 비슷하지만 실제 프로덕션 애플리케이션에는 일부 시나리오에서 Azure SQL Database에 대한 특수 코드가 필요할 수 있습니다. 자세한 내용은 Azure SQL 데이터베이스 작업 및 SQL ServerAzure SQL Database 중에서 선택을 참조하세요.