다음을 통해 공유


Visual Studio 또는 Visual Web Developer를 사용하여 SQL Server Compact를 사용하여 ASP.NET 웹 애플리케이션 배포: 코드 전용 업데이트 배포 - 12개 중 8개

작성자: 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 웹 배포를 참조하세요.

개요

초기 배포 후에는 웹 사이트를 유지 관리하고 개발하는 작업이 계속 진행되며, 얼마 지나지 않아 업데이트를 배포하려고 합니다. 이 자습서에서는 애플리케이션 코드에 업데이트를 배포하는 프로세스를 안내합니다. 이 업데이트에는 데이터베이스 변경이 포함되지 않습니다. 다음 자습서에서는 데이터베이스 변경 내용을 배포하는 방법에 대한 다른 내용을 확인할 수 있습니다.

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

코드 변경

애플리케이션에 대한 업데이트의 간단한 예로 강사 페이지에 선택한 강사가 가르친 과정 목록을 추가합니다.

강사 페이지를 실행하면 표에 선택 링크가 있지만 행 배경이 회색으로 바뀌는 것 외에는 아무 작업도 수행하지 않습니다.

Instructors_page

이제 선택 링크를 클릭하고 선택한 강사가 학습한 과정 목록을 표시할 때 실행되는 코드를 추가합니다.

Instructors.aspx ErrorMessageLabel Label 컨트롤 바로 다음에 다음 태그를 추가합니다.

<h3>Courses Taught</h3>
<asp:ObjectDataSource ID="CoursesObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
    DataObjectTypeName="ContosoUniversity.DAL.Course" SelectMethod="GetCoursesByInstructor">
    <SelectParameters>
        <asp:ControlParameter ControlID="InstructorsGridView" Name="PersonID" PropertyName="SelectedDataKey.Value"
            Type="Int32" />
    </SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="CoursesGridView" runat="server" DataSourceID="CoursesObjectDataSource"
    AllowSorting="True" AutoGenerateColumns="False" SelectedRowStyle-BackColor="LightGray"
    DataKeyNames="CourseID">
    <EmptyDataTemplate>
        <p>No courses found.</p>
    </EmptyDataTemplate>
    <Columns>
        <asp:BoundField DataField="CourseID" HeaderText="ID" ReadOnly="True" SortExpression="CourseID" />
        <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
        <asp:TemplateField HeaderText="Department" SortExpression="DepartmentID">
            <ItemTemplate>
                <asp:Label ID="GridViewDepartmentLabel" runat="server" Text='<%# Eval("Department.Name") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

페이지를 실행하고 강사를 선택합니다. 해당 강사가 가르친 과정 목록이 표시됩니다.

Instructors_page_with_courses

테스트 환경에 코드 업데이트 배포

테스트 환경에 배포하는 것은 원클릭 게시를 다시 실행하는 간단한 문제입니다. 이 프로세스를 더 빠르게 수행하려면 Web One Click Publish 도구 모음을 사용할 수 있습니다.

보기 메뉴에서 도구 모음을 선택한 다음 웹 원 클릭 게시를 선택합니다.

Selecting_One_Click_Publish_toolbar

솔루션 탐색기 ContosoUniversity 프로젝트를 선택합니다.

Web One Click Publish 도구 모음에서 테스트 게시 프로필을 선택한 다음 웹 게시(화살표가 왼쪽과 오른쪽을 가리키는 아이콘)를 클릭합니다.

Web_One_Click_Publish_toolbar

Visual Studio는 업데이트된 애플리케이션을 배포하고 브라우저가 홈페이지로 자동으로 열립니다. 강사 페이지를 실행하고 강사를 선택하여 업데이트가 성공적으로 배포되었는지 확인합니다.

Instructors_page_with_courses_Test

일반적으로 회귀 테스트도 수행합니다(즉, 사이트의 나머지 부분을 테스트하여 새 변경 내용이 기존 기능을 중단하지 않았는지 확인). 그러나 이 자습서에서는 해당 단계를 건너뛰고 프로덕션에 업데이트를 배포합니다.

프로덕션에 초기 데이터베이스 상태 다시 배포 방지

실제 애플리케이션에서 사용자는 초기 배포 후 프로덕션 사이트와 상호 작용하며 데이터베이스는 라이브 데이터로 채워집니다. 따라서 멤버 자격 데이터베이스를 초기 상태로 다시 배포하지 않고 모든 라이브 데이터를 지울 수 있습니다. SQL Server Compact 데이터베이스는 App_Data 폴더의 파일이므로 App_Data 폴더의 파일이 배포되지 않도록 배포 설정을 변경하여 이를 방지해야 합니다.

ContosoUniversity 프로젝트의 프로젝트 속성 창을 열고 패키지/게시 웹 탭을 선택합니다. 구성 드롭다운 상자에 활성(릴리스) 또는 릴리스가 선택되어 있는지 확인하고 App_Data 폴더에서 파일 제외를 선택합니다.

Exclude_files_from_the_App_Data_folder

나중에 디버그 빌드를 배포하기로 결정한 경우 디버그 빌드 구성에 대해 동일한 변경을 하는 것이 좋습니다. 구성을 디버그변경한 다음 App_Data 폴더에서 파일 제외를 선택합니다.

패키지/웹 게시 탭을 저장하고 닫습니다.

참고 항목

Important

게시 프로필에서 선택한 대상에서 추가 파일 제거가 없는지 확인합니다. 이 옵션을 선택하면 배포 프로세스는 배포된 사이트의 App_Data 있는 데이터베이스를 삭제하고 App_Data 폴더 자체를 삭제합니다.

업데이트 중에 프로덕션 사이트에 대한 사용자 액세스 방지

지금 배포하는 변경 내용은 단일 페이지로 간단하게 변경됩니다. 그러나 경우에 따라 더 큰 변경 내용을 배포하고, 이 경우 배포가 완료되기 전에 사용자가 페이지를 요청하면 사이트가 이상하게 동작할 수 있습니다. 이를 방지하려면 app_offline.htm 파일을 사용할 수 있습니다. 애플리케이션의 루트 폴더에 app_offline.htm 파일을 배치하면 IIS는 애플리케이션을 실행하는 대신 해당 파일을 자동으로 표시합니다. 따라서 배포 중에 액세스를 방지하려면 루트 폴더에 app_offline.htm 배치하고 배포 프로세스를 실행한 다음 app_offline.htm 제거합니다.

솔루션 탐색기 솔루션(프로젝트 중 하나가 아님)을 마우스 오른쪽 단추로 클릭하고 새 솔루션 폴더를 선택합니다.

Creating_a_solution_folder

SolutionFiles 폴더 의 이름을 지정합니다.

새 폴더에서 app_offline.htm HTML 페이지를 만듭니다. 기존 내용을 다음 태그로 바꿉니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Contoso University - Under Construction</title>
</head>
<body>
  <h1>Contoso University</h1>
  <h2>Under Construction</h2>
  <p>The Contoso University site is temporarily unavailable while we upgrade it. Please try again later.</p>
</body>
</html>

호스팅 공급자의 제어판에서 FTP 연결 또는 파일 관리자 유틸리티를 사용하여 app_offline.htm 파일을 사이트에 복사할 수 있습니다. 이 자습서에서는 파일 관리자사용합니다.

제어판을 열고 프로덕션 환경에 배포 자습서에서와 같이 파일 관리자를 선택합니다. contosouniversity.com 선택한 다음 wwwroot를 선택하여 애플리케이션의 루트 폴더로 이동한 다음 업로드를 클릭합니다.

Upload_button_in_File_Manager

파일 업로드 대화 상자에서 app_offline.htm 파일을 선택한 다음 업로드를 클릭합니다.

Upload_dialog_box_in_File_Manager

사이트의 URL로 이동합니다. 이제 홈페이지 대신 app_offline.htm 페이지가 표시됩니다.

App_offline.htm_page_in_production

이제 프로덕션 환경에 배포할 준비가 되었습니다.

프로덕션 환경에 코드 업데이트 배포

Web One Click Publish 도구 모음에서 프로덕션 게시 프로필을 선택한 다음 웹 게시를 클릭합니다.

Visual Studio는 업데이트된 애플리케이션을 배포하고 브라우저를 사이트의 홈페이지로 엽니다. app_offline.htm 파일이 표시됩니다. 성공적인 배포를 확인하기 위해 테스트하려면 먼저 app_offline.htm 파일을 제거해야 합니다.

제어판의 파일 관리자 애플리케이션으로 돌아갑니다. contosouniversity.com wwwroot선택하고 app_offline.htm 선택한 다음 삭제를 클릭합니다.

Deleting_app_offline.htm

브라우저에서 공개 사이트에서 강사 페이지를 열고 강사를 선택하여 업데이트가 성공적으로 배포되었는지 확인합니다.

Instructors_page_with_courses_Prod

이제 데이터베이스 변경이 포함되지 않은 애플리케이션 업데이트를 배포했습니다. 다음 자습서에서는 데이터베이스 변경 사항을 배포하는 방법을 보여줍니다.