연습: 웹 배포 패키지를 사용하여 웹 응용 프로그램 프로젝트 배포(1/4부)

이 연습은 웹 배포 패키지를 사용하여 웹 응용 프로그램 프로젝트를 배포하는 방법을 보여 주는 시리즈 중 첫 번째 연습입니다. 이 시리즈에서는 파일 시스템 웹 응용 프로그램 프로젝트를 만들어 봅니다. 먼저 로컬 IIS 테스트를 위해 프로젝트를 로컬 컴퓨터에 배포한 다음 스테이징 서버에 배포합니다. 스테이징 서버에 배포하는 데 사용하는 배포 패키지는 프로덕션 서버에 배포하는 데도 사용할 수 있도록 구성됩니다.

이 연습 시리즈에서는 다음 작업을 수행합니다.

  • 디버그 빌드 구성에 대한 패키지 만들기

  • 릴리스 빌드 구성에 대한 패키지 만들기

  • 대상 환경에 대한 Web.config 파일 설정 변환

  • 배포 중에 사용자 지정 SQL 스크립트 포함

  • 이미 배포된 데이터베이스 다시 배포

  • 배포에서 이미 배포된 데이터베이스 제외

  • 단일 대상 데이터베이스에 여러 개발 데이터베이스 배포

  • 로컬 컴퓨터에서 만들어진 계정 정보를 사용하거나 사용하지 않고 기본 ASP.NET 멤버 자격 데이터베이스 배포

  • 패키지가 설치될 때 변경할 수 있도록 할 구성 값에 사용자 지정 배포 매개 변수 사용

  • IIS 관리자를 사용하여 로컬 컴퓨터에 패키지 설치

  • deploy.cmd 파일을 사용하여 원격 컴퓨터에 패키지 설치

이 연습에서는 다음 작업을 수행합니다.

  • 디버그 빌드 구성에 대한 패키지 만들기

  • 대상 환경에 대한 Web.config 파일 설정 변환

  • 단일 대상 데이터베이스에 여러 개발 데이터베이스 배포

  • 배포 중에 사용자 지정 SQL 스크립트 포함

  • 로컬 컴퓨터에서 만들어진 계정 정보를 사용하여 기본 ASP.NET 멤버 자격 데이터베이스 배포

  • IIS 관리자를 사용하여 로컬 컴퓨터에 패키지 설치

사전 요구 사항

이 연습 시리즈를 완료하려면 다음이 필요합니다.

  • Visual Studio 또는 Visual Web Developer Express

    참고

    Visual Studio를 사용하는 경우 이 연습에서는 Visual Studio를 처음 시작할 때 웹 개발 설정 컬렉션을 선택했다고 가정합니다.자세한 내용은 방법: 웹 개발 환경 설정 선택을 참조하십시오.

  • SQL Server Express 2008 이상 버전. 기본적으로 Visual Studio와 함께 설치됩니다.

  • AdventureWorksLT 데이터베이스의 .mdf 파일 버전. 이 파일은 CodePlex 웹 사이트의 Microsoft SQL Server: Database Product Samples에서 SQL2008.AdventureWorksLT2008_Only_Database.zip으로 다운로드할 수 있습니다.

  • 로컬 컴퓨터에서 사용하도록 설정된 IIS 7

  • 로컬 컴퓨터의 IIS 7에 등록된 ASP.NET 4와 기본 웹 사이트에 할당된 ASP.NET 4 응용 프로그램 풀 자세한 내용은 ASP.NET IIS 등록 도구(Aspnet_regiis.exe)를 참조하십시오.

  • 로컬 컴퓨터에 대한 관리자 권한

또한 네 번째 연습의 배포 패키지 설치를 완료하려면 다음이 필요합니다.

  • 배포 대상이 될 수 있는 두 번째 컴퓨터. 두 번째 컴퓨터에서는 IIS 7을 사용하도록 설정되어 있고 IIS 7에 ASP.NET 4가 등록되어 있어야 하며 기본 웹 사이트에 ASP.NET 4 응용 프로그램 풀이 할당되어 있어야 합니다. 이 컴퓨터를 설정할 경우 컴퓨터에 대한 관리자 권한이 있어야 합니다. 사용자 대신 다른 사용자가 컴퓨터를 설정할 경우에도 사용하려는 배포 방법에 따라 사용자 본인에게 관리자 권한이 필요할 수 있습니다. 자세한 내용은 두 번째 컴퓨터가 필요한 연습인 연습: 웹 배포 패키지를 사용하여 웹 응용 프로그램 프로젝트 배포(4/4부)를 참조하십시오.

배포할 웹 프로젝트 만들기

다음 절차에서는 Visual Studio ASP.NET 웹 응용 프로그램 프로젝트 템플릿을 사용하여 배포할 웹 응용 프로그램 프로젝트를 만듭니다. 또한 ASP.NET 기본 멤버 자격 데이터베이스를 만들고, AdventureWorksLT 데이터베이스를 추가하고, AdventureWorksLT 데이터베이스의 데이터를 표시하기 위한 컨트롤을 추가합니다.

배포할 웹 프로젝트를 만들려면

  1. Visual Studio의 파일 메뉴에서 프로젝트를 클릭합니다.

    참고

    새 웹 사이트가 아니라 새 프로젝트를 선택해야 합니다.배포 패키징은 웹 응용 프로그램 프로젝트에서만 작동합니다.

    새 프로젝트 대화 상자가 표시됩니다.

  2. 설치된 템플릿 창에서 Visual Basic 또는 **Visual C#**을 확장하고 을 선택합니다.

  3. ASP.NET 웹 응용 프로그램 템플릿을 선택합니다.

    다음 그림과 유사한 새 프로젝트 대화 상자가 나타납니다.

    기본값으로 채워진 새 프로젝트 대화 상자

  4. 이름 상자에 AdventureWorks를 입력합니다.

  5. 확인을 클릭합니다.

    Visual Studio에서 웹 응용 프로그램이 만들어집니다. 이 응용 프로그램의 데이터베이스를 포함하기 위해 App_Data 폴더도 만들어지지만 이 폴더에 데이터베이스는 아직 없습니다.

  6. 솔루션 탐색기에서 Account 폴더를 확장하고 Register.aspx 파일을 마우스 오른쪽 단추로 클릭한 다음 브라우저에서 보기를 클릭합니다.

    다음 그림과 같이 새 계정 만들기 페이지가 표시됩니다.

    새 계정 만들기 페이지

  7. 사용자 이름암호에 각각 newuser를 입력하고 전자 메일 주소를 입력한 다음 사용자 만들기를 클릭합니다.

    App_Data 폴더에 ASPNETDB.MDF SQL Server 데이터베이스 파일이 만들어지고 제공한 자격 증명이 해당 데이터베이스에 입력됩니다. 솔루션 탐색기에서 .mdf 파일을 보려면 솔루션 탐색기에서 모든 파일 표시 단추를 클릭합니다.

  8. SQL2008.AdventureWorksLT2008_Only_Database.zip 파일의 내용을 프로젝트의 App_Data 폴더에 추출합니다. 이 샘플 데이터베이스에 대한 자세한 내용은 이 항목의 앞부분에 나오는 사전 요구 사항을 참조하십시오.

  9. Web.config 파일을 엽니다.

  10. 다음 예제와 같이 connectionStrings 요소에서 AdventureWorksLT 데이터베이스에 대한 연결 문자열을 추가합니다.

    <connectionStrings>
      <add name="ApplicationServices"
          connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
          providerName="System.Data.SqlClient" />
      <add name="AWLTConnectionString" 
          connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\AdventureWorksLT2008_Data.mdf;User Instance=true"
          providerName="System.Data.SqlClient" />
    </connectionStrings>
    
  11. Web.config 파일을 저장한 다음 닫습니다.

  12. Default.aspx 파일을 엽니다.

    소스 뷰에 파일이 표시됩니다.

  13. h2 및 p 요소를 삭제하고 해당 위치에 다음 태그를 추가합니다.

    <h2>
      Welcome to AdventureWorks!
    </h2>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AWLTConnectionString %>" 
        SelectCommand="SELECT SalesLT.Product.* FROM SalesLT.Product">
    </asp:SqlDataSource>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="ProductID" DataSourceID="SqlDataSource1">
        <Columns>
            <asp:BoundField DataField="Name" HeaderText="Name" 
                SortExpression="Name" />
            <asp:BoundField DataField="Color" HeaderText="Color" 
                SortExpression="Color" />
            <asp:BoundField DataField="ListPrice" HeaderText="ListPrice" 
                SortExpression="ListPrice" />
            <asp:BoundField DataField="Size" HeaderText="Size" 
                SortExpression="Size" />
            <asp:BoundField DataField="Weight" HeaderText="Weight" 
                SortExpression="Weight" />
        </Columns>
    </asp:GridView>
    

    이 태그는 응용 프로그램 제목을 Adventure Works로 변경하고, AdventureWorksLT 테이블 중 하나의 데이터를 표시하는 GridView 컨트롤을 추가합니다. 이 컨트롤을 통해 AdventureWorksLT 데이터가 제대로 배포되었는지 확인할 수 있습니다.

  14. Default.aspx 파일을 저장한 후 닫습니다.

  15. 필요한 경우 다음 단계에 따라 마스터 페이지의 제목을 변경합니다.

    1. Site.master 파일을 엽니다.

    2. '내 ASP.NET 응용 프로그램'을 삭제하고 Adventure Works로 바꿉니다.

    3. 파일을 저장한 후 닫습니다.

  16. 다음 단계에 따라 사이트를 테스트합니다.

    1. Ctrl+F5를 눌러 응용 프로그램을 테스트합니다.

      Default.aspx 페이지가 브라우저에 표시됩니다. 이 페이지에는 다음 그림과 같이 Adventure Works 제품 목록이 표시됩니다.

      Adventure Works 웹 응용 프로그램 기본 페이지

    2. 로그인 하이퍼링크를 클릭합니다.

      로그인 페이지가 표시됩니다.

    3. 사용자 이름암호 모두에 newuser를 입력한 다음 로그인을 클릭합니다.

      Default.aspx 페이지가 열리고 오른쪽 위에 **환영합니다 newuser!**가 표시됩니다.

      Adventure Works 기본 페이지에 로그온됨

    4. 브라우저를 닫습니다.

대상 데이터베이스 만들기

이 웹 프로젝트에는 현재 두 개의 데이터베이스가 있습니다. 두 데이터베이스 모두의 내용을 단일 데이터베이스에 배포해 봅니다. 프로덕션 환경에서는 두 데이터베이스보다 하나의 데이터베이스를 유지 관리 및 관리하는 편이 더 비용 효율적일 수 있습니다.

다음 절차에서는 배포할 대상으로 빈 데이터베이스를 만듭니다.

대상 데이터베이스를 만들려면

  1. 서버 탐색기에서 데이터 연결을 마우스 오른쪽 단추로 클릭한 다음 새 SQL Server 데이터베이스 만들기를 클릭합니다.

    새 SQL Server 데이터베이스 만들기 대화 상자가 표시됩니다.

  2. 서버 이름 상자에 localhost\SQLExpress를 입력합니다.

  3. 새 데이터베이스 이름 상자에 AdventureWorksTest를 입력합니다.

    데이터베이스 이름을 입력하고 나면 새 SQL Server 데이터베이스 만들기 대화 상자가 다음 그림과 유사하게 됩니다.

    데이터베이스 만들기 대화 상자

  4. 확인을 클릭합니다.

    새 데이터베이스가 만들어져 다음 그림과 같이 서버 탐색기 창의 데이터 연결 폴더에 표시됩니다.

    새 데이터베이스를 보여 주는 서버 탐색기

대상 데이터베이스에 대한 부여 스크립트 만들기

IIS에서 웹 응용 프로그램을 배포할 경우 해당 웹 응용 프로그램은 기본 ASP.NET 4 응용 프로그램 풀에 할당되며, 이 데이터베이스에 액세스할 때는 응용 프로그램 풀의 자격 증명을 사용하게 됩니다. 따라서 이 자격 증명에 읽기 권한을 부여하는 스크립트도 만들어야 합니다.

다음 절차에서는 응용 프로그램 풀 자격 증명에 데이터베이스 읽기 권한을 부여하기 위해 실행할 스크립트를 만듭니다.

응용 프로그램 풀에 읽기 권한을 부여하는 스크립트를 만들려면

  1. 메모장과 같은 텍스트 편집기를 엽니다.

  2. 새 텍스트 파일을 만들고 이 파일에 다음 Transact-SQL 문을 삽입합니다.

    CREATE LOGIN [IIS APPPOOL\ASP.NET v4.0] 
      FROM WINDOWS WITH DEFAULT_DATABASE=[master], 
      DEFAULT_LANGUAGE=[us_english]
    GO
    CREATE USER [AdventureWorksUser] 
      FOR LOGIN [IIS APPPOOL\ASP.NET v4.0]
    GO
    EXEC sp_addrolemember 'db_datareader', 'AdventureWorksUser'
    GO
    

    참고

    이 스크립트는 Windows 7 및 Windows Server 2008 R2에서 기본 보안 설정을 사용하여 작동하도록 디자인되었습니다.이전 버전의 Windows를 사용하거나 컴퓨터에 사용자 지정 보안 설정이 있는 경우 이 스크립트는 웹 사이트가 IIS에서 실행될 때 웹 사이트에서 사용하는 자격 증명에 해당 데이터베이스를 사용할 수 있도록 설정하지 못할 수 있습니다.SQL Server 보안에 대한 자세한 내용은 SQL Server 온라인 설명서를 참조하십시오.

  3. 파일 이름을 AdventureWorksGrant.sql로 지정하고 이 파일을 컴퓨터의 C:\Temp와 같은 폴더에 저장합니다.

    원하는 폴더에 스크립트를 저장할 수 있습니다. 이 연습의 뒷부분에서 스크립트에 액세스하기 때문에 이 위치를 기억해 둡니다.

활성 빌드 구성 설정

기본적으로 새 프로젝트의 활성 빌드 구성은 디버그입니다. 로컬 컴퓨터에서 IIS에 처음 배포할 때는 이 빌드 구성을 사용합니다. 다음 절차에서는 올바른 빌드 구성이 선택되었는지 확인합니다.

활성 빌드 구성을 설정하려면

  1. 빌드 메뉴에서 구성 관리자를 클릭합니다.

    구성 관리자 대화 상자가 표시됩니다.

  2. 활성 솔루션 구성 목록에서 디버그가 선택되어 있는지 확인합니다.

    활성 솔루션 구성 목록은 일반적으로 표준 도구 모음에도 표시됩니다. 목록이 이 도구 모음에 표시되는 경우 구성 관리자를 열지 않고 빌드 구성을 확인하거나 변경할 수 있습니다.

  3. 구성 관리자를 닫습니다.

배포 패키지 설정 지정

다음 절차에서는 배포할 파일 및 IIS 설정과 패키지를 만들 방법을 지정합니다.

배포 패키징 설정을 지정하려면

  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

    속성 페이지가 표시됩니다.

  2. 웹 패키지 및 게시 탭을 선택합니다.

    다음 그림과 같이 웹 패키지 및 게시 탭이 표시됩니다.

    웹 패키지 및 게시 탭

    구성 목록에서 **활성(Debug)**이 선택되어 있는지 확인합니다. 기본적으로 활성 빌드 구성이 선택됩니다. 이전 절차에서는 활성 빌드 구성을 디버그로 설정했습니다.

  3. 배포할 항목(모든 배포 방법에 적용) 목록에서 이 응용 프로그램을 실행하는 데 필요한 파일만 확인란이 선택되어 있는지 확인합니다.

  4. 생성된 디버그 기호 제외 확인란의 선택이 취소되어 있는지 확인합니다.

    이 연습 부분에서는 테스트용 컴퓨터에 배포하도록 구성합니다. 따라서 디버깅할 수 있습니다.

    참고

    배포된 사이트를 디버그 모드에서 실행할 수 있는지 여부는 이 옵션과 Web.config 파일 설정에 따라 달라지며,빌드 구성의 이름과는 상관이 없습니다.

  5. App_Data 폴더에서 파일 제외 확인란을 선택합니다.

    이 프로젝트에서는 App_Data 폴더에 있는 SQL Server Express .mdf 파일을 사용하지만 빈 대상 데이터베이스에서 스크립트를 실행하여 배포를 수행합니다. 따라서 .mdf 파일은 배포하지 않습니다.

  6. SQL 패키지 및 게시 탭에서 구성된 모든 데이터베이스 포함 확인란이 선택되어 있는지 확인합니다. SQL 패키지 및 게시 탭은 다음 절차에서 구성합니다.

  7. 배포 패키지를 ZIP 파일로 만들기 확인란이 선택되어 있는지 확인합니다.

    배포 도구에서는 패키지를 .zip 파일로 만듭니다. 이 확인란의 선택을 취소하면 패키지가 폴더 구조에 파일로 만들어집니다. 이 작업은 일반적으로 배포된 사이트의 보관용 복사본을 만들기 위해 수행됩니다.

  8. 패키지를 만들 위치 상자에 다음 값(AdventureWorks를 프로젝트 이름으로 지정한 경우 기본값)이 포함되어 있는지 확인합니다.

    obj\Debug\Package\AdventureWorks.zip

  9. 대상 서버에서 사용할 IIS 웹 사이트 및 응용 프로그램 이름 상자에 Default Web Site/AdventureWorks를 입력합니다.

  10. 웹 패키지 및 게시 탭에 변경 사항을 저장합니다.

데이터베이스 배포 설정 지정

다음 절차에서는 배포할 데이터베이스와 배포 방법을 지정합니다. 또한 배포 중에 이전 절차에서 만든 AdventureWorksGrant.sql 스크립트가 실행되도록 지정합니다.

배포 중에 실행될 SQL Server 스크립트를 지정하려면

  1. SQL 패키지 및 게시 탭을 클릭합니다.

    다음 그림과 같이 SQL 패키지 및 게시 탭이 표시됩니다.

    SQL 패키지 및 게시 탭

  2. Web.config에서 가져오기를 클릭합니다.

    Visual Studio에서 응용 프로그램 Web.config 파일을 읽어 연결 문자열을 찾습니다. Web.config 파일에서 찾은 각 연결 문자열마다 하나의 행이 데이터베이스 항목 표에 만들어집니다. 기본적으로 데이터베이스 항목 표의 이름은 연결 문자열 이름에 -Deployment 접미사를 추가한 것입니다.

    이 연습의 경우 두 개의 행이 만들어집니다. 다음 그림과 같이 하나는 ApplicationServices-Deployment이고 다른 하나는 AWLTConnectionString-Deployment입니다.

    SQL 패키지 및 게시 데이터베이스 표

  3. 데이터베이스 항목 표에서 ApplicationServices-Deployment 행이 선택되어 있는지 확인합니다.

    데이터베이스 항목 표 아래의 필드는 데이터베이스 항목 표에서 선택된 행에 적용됩니다. 행이 선택되어 있지 않으면 표 아래의 필드를 사용할 수 없습니다.

  4. 대상 데이터베이스에 대한 연결 문자열 상자에 이전 절차에서 만든 AdventureWorksTest 데이터베이스에 대한 연결 문자열을 입력합니다. 다음 단계에 따라 이 작업을 수행할 수 있습니다.

    1. 서버 탐색기 창에서 데이터 연결 폴더를 확장하고 AdventureWorksTest 데이터베이스를 선택합니다.

    2. 속성 창에서 연결 문자열 속성의 값을 선택하고 복사합니다. 속성 창은 다음 그림과 유사합니다.

      연결 문자열을 보여 주는 속성 창

    3. 대상 데이터베이스에 대한 연결 문자열 상자에 연결 문자열을 붙여 넣습니다.

  5. 기존 데이터베이스에서 데이터 및/또는 스키마 가져오기 확인란이 선택되어 있는지 확인합니다.

    Web.config에서 가져오기를 클릭할 때 이 옵션은 자동으로 선택되었습니다. 소스 데이터베이스에 대한 연결 문자열 상자도 Web.config 파일의 연결 문자열로 자동으로 채워졌습니다.

  6. 데이터베이스 스크립트 옵션 목록을 스키마 및 데이터로 설정합니다.

    배포 후 대상 데이터베이스에는 프로젝트를 만들 때 만든 사용자 계정 자격 증명이 포함됩니다.

  7. 데이터베이스 항목 테이블에서 AWLTConnectionString-Deployment 행을 선택합니다.

    표 아래의 필드에 기본값이 표시됩니다.

  8. 대상 데이터베이스에 대한 연결 문자열 상자에 ApplicationServices 데이터베이스에 대해 입력한 것과 동일한 대상 연결 문자열을 입력합니다.

    이 연습에서는 두 데이터베이스 모두에 대해 동일한 대상 연결 문자열을 사용하고 있습니다. 따라서 배포 중 데이터베이스 개체를 만들고 채우는 스크립트가 모두 동일한 데이터베이스에서 실행됩니다. 그 결과 대상 데이터베이스에는 두 프로젝트 데이터베이스에서 가져온 모든 테이블과 기타 데이터베이스 개체가 포함됩니다.

  9. 기존 데이터베이스에서 데이터 및/또는 스키마 가져오기 확인란이 선택되어 있는지 확인합니다.

  10. 데이터베이스 스크립트 옵션 목록을 스키마 및 데이터로 설정합니다.

  11. 스크립트 추가를 클릭합니다.

  12. 파일 선택 대화 상자에서 C:\Temp\AdventureWorksGrant.sql로 이동한 다음 열기를 클릭합니다. 이 연습의 앞부분에서 다른 폴더에 스크립트를 저장한 경우에는 해당 폴더 이름을 사용하십시오.

    다음 그림과 같이 AdventureWorksGrant.sql 파일이 데이터베이스 스크립트 표에 추가됩니다.

    SQL 패키지 및 게시 탭의 데이터베이스 스크립트 표

  13. SQL 패키지 및 게시 탭에 변경 사항을 저장합니다.

사용자 지정 스크립트에 대해 트랜잭션 모드 지정

기본적으로 자동으로 생성된 스크립트는 트랜잭션에서 실행되지만 사용자 지정 스크립트는 그렇지 않습니다. 트랜잭션 모드를 혼합하면 배포 중 스크립트가 실행될 때 시간 초과 오류가 발생합니다.

다음 절차에서는 프로젝트 파일을 편집하여 이전 절차에서 추가한 사용자 지정 스크립트가 트랜잭션에서 실행되도록 구성합니다.

사용자 지정 스크립트가 트랜잭션에서 실행되도록 지정하려면

  1. 메모장과 같은 텍스트 편집기를 사용하여 AdventureWorks.csproj 또는 AdventureWorks.vbproj 파일을 엽니다.

    솔루션 탐색기에서 프로젝트 디렉터리로 이동하여 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 Windows 탐색기에서 폴더 열기를 클릭합니다.

  2. 디버그 빌드 구성과 관련된 PropertyGroup 요소를 찾습니다.

    이 요소의 여는 태그는 다음 예제와 유사합니다.

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

  3. PropertyGroup 요소에서 PublishDatabaseSettings 요소를 찾습니다.

  4. PublishDatabaseSettings 요소에서 AWLTConnectionString-Deployment라는 ObjectGroup 요소를 찾습니다.

    이 ObjectGroup 요소 안에 있는 두 번째 Object 요소는 AdventureWorksGrant.sql 스크립트용입니다.

  5. AdventureWorksGrant.sql 스크립트용인 Object 요소에서 Source 요소의 Transacted 특성 값을 True로 변경합니다.

    이제 AWLTConnectionString-Deployment ObjectGroup 요소가 다음 예제와 유사하게 표시됩니다.

    <ObjectGroup Name="AWLTConnectionString-Deployment" Order="2">
      <Destination Path="..." />
      <Object Type="dbFullSql" Enabled="True">
        <PreSource Path="..." ScriptSchema="True" ScriptData="True"
          CopyAllFullTextCatalogs="False" ScriptDropsFirst="True" />
        <Source Path="..." Transacted="True" />
      </Object>
      <Object Type="dbFullSql" Enabled="False">
        <Source Path="...\AdventureWorksGrant.sql" Transacted="True" />
      </Object>
    </ObjectGroup>
    
  6. 변경 내용을 저장하고 프로젝트 파일을 닫습니다.

  7. Visual Studio에서 프로젝트를 다시 로드할 것인지 묻는 메시지가 표시되면 다시 로드 단추를 클릭합니다.

배포된 Web.config 파일의 연결 문자열 변경

다음 절차에서는 배포된 Web.config 파일의 데이터베이스 연결 문자열이 대상 환경에 올바른 값으로 설정되도록 하는 변환 파일을 만듭니다.

배포된 Web.config 파일의 연결 문자열을 변경하려면

  1. 솔루션 탐색기에서 Web.config 파일을 확장합니다.

  2. Web.Debug.config라는 파일이 없으면 Web.config 파일을 마우스 오른쪽 단추로 클릭한 다음 구성 변환 추가를 클릭합니다.

  3. Web.Debug.config 파일을 엽니다.

  4. connectionStrings 요소가 포함된 주석 블록을 삭제하고 다음 태그로 바꿉니다. 여기서 [connection string]은 대상 데이터베이스에 대한 연결 문자열 상자에서 입력한 값으로 바꿉니다.

    <connectionStrings>
      <add name="ApplicationServices"
           connectionString="[connection string]"
           providerName="System.Data.SqlClient" 
           xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
      <add name="AWLTConnectionString"
           connectionString="[connection string]"
           providerName="System.Data.SqlClient" 
           xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
      </connectionStrings>
    
  5. Web.Debug.config 파일을 저장한 다음 닫습니다.

웹 응용 프로그램 배포

다음 단계에서는 패키지를 만들어 프로젝트를 배포합니다. 그런 다음 IIS 관리자를 사용하여 패키지를 IIS로 가져올 수 있습니다.

패키지를 만들어 IIS로 가져오려면

  1. 프로젝트 메뉴에서 배포 패키지 빌드를 클릭합니다.

    프로젝트가 빌드되고 배포 패키지가 만들어진 다음 출력 창에 로그가 표시됩니다. 패키지 작성 프로세스의 일부로 웹 배포 dbFullSQL 공급자는 각 소스 데이터베이스에 대해 하나씩의 SQL 서버 스크립트를 만듭니다. 이 연습에서는 대상 데이터베이스가 하나뿐이므로 패키지를 가져올 때 두 스크립트가 모두 해당 데이터베이스에서 실행됩니다. 다음 예제에서는 출력 창의 일부 내용을 보여 줍니다.

    ------ 빌드 시작: 프로젝트: AdventureWorks, 구성: Any CPU 디버그 ------

    ...

    ------ 게시 시작: 프로젝트: AdventureWorks, 구성: Any CPU 디버그 ------

    Web.Debug.config을(를) 사용하는 Web.config을(를)

    obj\Debug\TransformWebConfig\transformed\Web.config(으)로 변환했습니다.

    ...

    패키지/게시를 위해 모든 파일을 아래의 임시 위치로 복사하고 있습니다.

    obj\Debug\Package\PackageTmp

    MSDeploy.dbFullSql(MSDeploy.dbFullSql)을(를) 추가하고 있습니다.

    ...

    자식 sqlScript(MSDeploy.dbFullSql/

    dbFullSql[@path='c:\users\username\documents\visual studio 2010\

    Projects\AdventureWorks\AdventureWorksCS\obj\Debug\AutoScripts\

    ApplicationServices-Deployment_SchemaAndData.sql']/sqlScript)을(를) 추가하고 있습니다.

    ...

    선언된 매개 변수 'IIS Web Application Name'을(를) 추가하고 있습니다.

    선언된 매개 변수 'ApplicationServices-Deployment Connection String'을(를) 추가하고 있습니다.

    선언된 매개 변수 'AWLTConnectionString-Deployment Connection String'을(를) 추가하고 있습니다.

    "AdventureWorks.zip" 패키지가 다음 위치에 단일 파일로

    만들어졌습니다.

    file:///c:/users/username/documents/visual%20studio%202010/

    Projects/AdventureWorks/AdventureWorksCS/obj/Debug/Package

    ...

    ========== 빌드: 성공 또는 최신 상태 1, 실패 0, 생략 0 ==========

    ========== 게시: 성공 1, 실패 0, 생략 0 ==========

  2. 다음 단계를 수행하여 배포 패키지의 경로를 Windows 클립보드로 복사합니다.

    1. 솔루션 탐색기에 obj 폴더가 표시되지 않으면 솔루션 탐색기 도구 모음에서 모든 파일 표시 단추를 클릭합니다.

    2. obj 폴더, Debug 폴더, Package 폴더를 차례로 확장합니다.

    3. AdventureWorks.zip 파일을 선택합니다.

    4. 속성 창에서 전체 경로 필드의 값을 선택하고 복사합니다.

  3. Windows 제어판에서 관리 도구를 클릭하고 인터넷 정보 서비스(IIS) 관리자를 클릭합니다.

    IIS 관리자가 열리고 연결 패널에 현재 컴퓨터가 선택되어 있습니다.

  4. 연결 패널에서 현재 컴퓨터의 노드를 확장하고 사이트 폴더를 확장한 다음 기본 웹 사이트를 선택합니다.

    이제 IIS 관리자가 다음 그림과 유사하게 표시됩니다.

    IIS 관리자

  5. 작업 패널에서 응용 프로그램 가져오기를 클릭합니다.

    참고

    이 링크는 일반적으로 웹 배포가 설치되어 있을 때 표시되며, 웹 배포는 Visual Studio를 설치할 때 기본적으로 설치됩니다.이 링크가 없으면 제어판에서 프로그램 및 기능을 열고 웹 배포 도구를 마우스 오른쪽 단추로 클릭한 다음 복구를 클릭합니다.

    응용 프로그램 패키지 가져오기 마법사가 열리고 패키지 선택 대화 상자가 표시됩니다.

  6. 패키지 경로 상자에 앞 단계에서 복사한 경로를 붙여 넣습니다.

    패키지 선택 대화 상자가 다음 그림과 유사하게 표시됩니다.

    패키지 선택 대화 상자

  7. 다음을 클릭합니다.

    다음 그림과 같은 패키지 콘텐츠 선택 대화 상자가 표시됩니다.

    패키지 콘텐츠 선택 대화 상자

  8. 다음을 클릭합니다.

    다음 그림과 같은 응용 프로그램 패키지 정보 입력 대화 상자가 표시됩니다.

    응용 프로그램 패키지 정보 입력 대화 상자

    응용 프로그램 경로 및 연결 문자열의 기본값은 사용자가 웹 패키지 및 게시 탭에서 설정한 값입니다.

  9. 다음을 클릭합니다.

  10. 다음 그림과 같이 컴퓨터에 ASP.NET 4가 설치되어 있는지를 확인할지 묻는 대화 상자가 표시되면 ASP.NET 4 응용 프로그램 풀을 기본 웹 사이트에 할당합니다.

    ASP.NET 4가 IIS에 등록되어 있지 않음

    이렇게 하려면 다음 단계를 수행합니다.

    1. 응용 프로그램 패키지 정보 입력 대화 상자에서 취소를 클릭합니다.

    2. Windows 시작 메뉴에서 명령 프롬프트를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 클릭합니다.

    3. 다음과 같이 적절한 .NET Framework 4 폴더로 이동합니다.

      C:\Windows\Microsoft.NET\Framework\v4.0.30319

      컴퓨터의 Windows 폴더가 다른 드라이브에 있는 경우에는 C를 적절한 드라이브 문자로 바꿉니다. 64비트 운영 체제의 경우 Framework 대신 Framework64를 사용합니다.

    4. aspnet_regiis -iru -enable 명령을 입력하고 Enter 키를 누릅니다.

      이 도구는 IIS에 ASP.NET을 등록합니다. 자세한 내용은 ASP.NET IIS 등록 도구(Aspnet_regiis.exe)를 참조하십시오.

    5. 명령 프롬프트 창을 닫습니다.

    6. IIS 관리자에서 기본 웹 사이트를 선택하고 작업 패널에서 기본 설정을 클릭합니다.

    7. 응용 프로그램 풀ASP.NET v4.0 응용 프로그램 풀로 변경합니다. 연습을 마친 후 이 값을 다시 원래 값으로 설정할 수 있습니다.

    8. 앞의 단계 중 IIS 관리자의 작업 패널에서 응용 프로그램 가져오기 하이퍼링크를 클릭하는 단계부터 반복하여 패키지를 설치합니다.

    웹 배포가 패키지를 설치하는 동안 설치 진행률 및 요약 대화 상자가 표시됩니다. 이 대화 상자에는 설치 과정의 진행률 표시줄이 표시됩니다. 설치가 완료되면 이 대화 상자에는 다음 그림과 같이 수행된 작업에 대한 로그가 표시됩니다.

    설치 진행률 및 요약 대화 상자

  11. 마침을 클릭합니다.

배포된 웹 응용 프로그램 테스트

이 연습의 마지막 단계는 웹 응용 프로그램이 올바르게 배포되었는지 확인하는 것입니다.

웹 응용 프로그램을 테스트하려면

  1. 브라우저를 열고 다음 URL을 입력합니다.

    https://localhost/AdventureWorks

    Default.aspx 페이지가 표시됩니다. 이 페이지는 Visual Studio에서 프로젝트를 실행할 때 표시되는 것과 동일하게 나타납니다. 제품 테이블을 보면 AdventureWorksLT 데이터베이스가 성공적으로 배포되었음을 알 수 있습니다.

  2. 로그인 링크를 클릭합니다.

  3. 사용자 이름암호에 newuser를 입력한 다음 로그인을 클릭합니다.

    Default.aspx 페이지가 다시 표시되는데 이번에는 로그아웃 링크 옆에 **환영합니다 newuser!**가 표시됩니다. 이를 통해 ASP.NET 멤버 자격 데이터베이스가 성공적으로 배포되었음을 알 수 있습니다.

다음 단계

이 연습에서는 테이블 두 개의 데이터베이스를 포함하는 파일 시스템 웹 응용 프로그램 프로젝트를 만들었습니다. 그런 다음 이 프로젝트를 단일 데이터베이스를 사용하는 IIS 웹 응용 프로그램에 배포했습니다.

이 시리즈의 다음 연습은 연습: 웹 배포 패키지를 사용하여 웹 응용 프로그램 프로젝트 배포(2/4부)입니다. 이 연습에서는 데이터베이스 중 하나의 구조를 변경하고 웹 페이지를 변경한 다음 변경 내용을 배포합니다.

참고 항목

개념

ASP.NET 배포 콘텐츠 맵