다음을 통해 공유


Visual Studio에서 Azure 클라우드 서비스로 웹 애플리케이션 마이그레이션 및 게시

참고 항목

이 문서는 새 고객에게 더 이상 사용되지 않으며 2024년 8월 31일에 사용 중지되는 Azure Cloud Services(클래식)에 적용됩니다. 이 기술로 빌드된 기존 서비스는 여전히 Azure Cloud Services(추가 지원)를 통해 지원됩니다. 새 개발의 경우 Azure 앱 Service, Azure Functions 또는 Azure Container Apps와 같은 특정 용도로 설계된 최신 서비스 유형을 사용하는 것이 좋습니다. 사용 가능한 서비스의 최신 목록은 Azure 제품 디렉터리를 참조 하세요.

Azure의 호스팅 서비스와 확장 기능을 활용하기 위해 웹 애플리케이션을 Azure 클라우드 서비스로 마이그레이션 및 배포해야 하는 경우가 있습니다. 최소의 변경 작업만 수행하면 됩니다. 이 문서에서는 클라우드 서비스에 배포하는 내용만 다룹니다. App Service에 대한 내용은 Azure App Service에 웹앱 배포를 참조하세요.

Important

이 마이그레이션은 특정 ASP.NET, WCF, WCF 워크플로 프로젝트에서만 지원됩니다. ASP.NET Core 프로젝트에는 지원되지 않습니다. 지원되는 프로젝트 템플릿을 참조하세요.

필수 조건

프로젝트를 클라우드 서비스로 마이그레이션

  1. 솔루션 노드를 마우스 오른쪽 단추로 클릭하고 추가 > 새 프로젝트... 를 선택한 다음, 기존 솔루션에 새 Azure 클라우드 서비스(클래식) 프로젝트를 추가합니다.

  2. 새 Microsoft Azure 클라우드 서비스(클래식) 대화 상자에서 프로젝트에 역할을 추가하지 않고 확인을 클릭합니다.

  3. 새로 추가된 Cloud Services 프로젝트 아래의 역할 노드를 마우스 오른쪽 단추로 클릭하고 솔루션에서 웹 역할 프로젝트 추가...를 선택합니다.

  4. 역할 프로젝트와 연결 대화 상자에서 웹 역할로 연결할 프로젝트를 선택합니다.

    Important

    이 웹 애플리케이션에 필요한 다른 어셈블리 또는 파일이 있는 경우 이러한 파일에 대한 속성을 수동으로 설정해야 합니다. 이러한 속성을 설정하는 방법은 서비스 패키지에 파일 포함을 참조하세요.

오류 및 경고

발생하는 모든 경고 또는 오류는 어셈블리 누락처럼 Azure에 배포하기 전에 해결해야 하는 문제를 나타냅니다.

애플리케이션을 빌드하고 컴퓨팅 에뮬레이터를 사용하여 로컬로 실행하거나 Azure에 게시할 경우 “지정한 경로 및/또는 파일 이름이 너무 깁니다.”라는 오류가 표시될 수 있습니다. 이 오류는 정규화된 Azure 프로젝트 이름이 146자를 초과한다는 의미입니다. 이 문제를 해결하려면 경로 길이가 짧은 폴더로 솔루션을 이동합니다.

경고를 오류로 처리하는 방법은 Visual Studio에서 Azure 클라우드 서비스 프로젝트 구성을 참조하세요.

로컬로 마이그레이션 테스트

  1. Visual Studio 솔루션 탐색기에서 추가된 클라우드 서비스 프로젝트를 마우스 오른쪽 단추로 클릭하고 시작 프로젝트로 설정을 클릭합니다.
  2. 디버그 > 디버깅 시작 (F5)을 선택하여 Azure 디버깅 환경을 시작합니다. 이 환경은 다양한 Azure 서비스 에뮬레이션을 제공합니다.

애플리케이션에 Azure SQL 데이터베이스 사용하기

온-프레미스 SQL Server 데이터베이스를 사용하는 웹 애플리케이션에 대한 연결 문자열이 있는 경우, 그 대신 데이터베이스를 Azure SQL Database로 마이그레이션하고 연결 문자열을 업데이트해야 합니다. 이 프로세스에 대한 지침은 다음 항목을 참조하세요.

애플리케이션을 Azure Cloud Service에 게시

  1. Visual Studio에서 Azure 애플리케이션 게시 또는 배포 준비의 설명에 따라 Azure 구독에서 필요한 클라우드 서비스 및 스토리지 계정을 만듭니다.

  2. Visual Studio에서 애플리케이션 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Microsoft Azure에 게시... ("게시…" 명령과 다름)를 선택합니다.

  3. 나타나는 Azure 애플리케이션 게시에서, 계정을 사용하여 Azure 구독에 로그인하고 다음 >을 선택합니다.

  4. 설정 > 일반 설정 탭의 클라우드 서비스 드롭다운 목록에서 목표 클라우드 서비스와 선택한 환경 설정을 선택하세요.

  5. 설정 > 고급 설정에서 사용할 스토리지 계정을 선택한 후 다음 >을 선택합니다.

  6. 진단에서 Application Insights에 정보를 보낼 것인지 선택합니다.

  7. 요약을 보려면 다음 >을 선택하고 게시를 선택하여 배포를 시작합니다.

  8. Visual Studio에서 진행률을 추적할 수 있는 활동 로그 창이 열립니다.

    VST_AzureActivityLog

  9. (선택 사항) 배포 프로세스를 취소하려면 활동 로그에서 개별 항목을 마우스 오른쪽 단추로 클릭하고 취소한 후 제거를 선택합니다. 이 명령은 배포 프로세스를 중지하고 Azure에서 배포 환경을 삭제합니다. 참고: 이 배포 환경을 배포한 후 제거하려면 Azure Portal을 사용해야 합니다.

  10. 배포 후 애플리케이션에 액세스하려면 Azure 활동 로그에 URL과 함께 완료됨 상태가 나타날 때 배포 옆의 화살표를 선택합니다. Azure에서 특정 유형의 웹 애플리케이션을 시작하는 방법은 다음 표를 참조하세요.

컴퓨팅 에뮬레이터를 사용하여 Azure에서 애플리케이션 시작

모든 종류의 애플리케이션은 디버그 > 디버깅 시작(F5)을 선택하여 Visual Studio 디버거에 연결된 브라우저에서 시작할 수 있습니다. ASP.NET 빈 웹 애플리케이션 프로젝트를 사용하는 경우 먼저 애플리케이션에 .aspx 페이지를 추가하고 웹 프로젝트의 시작 페이지로 설정해야 합니다.

다음 표에는 Azure에서 애플리케이션을 시작하는 방법이 자세히 설명되어 있습니다.

웹 애플리케이션 유형 Azure에서 실행
ASP.NET 웹 애플리케이션
(MVC(Model-View-Controller) 2, MVC 3, MVC 4 포함)
Azure 활동 로그배포 탭에서 URL을 선택합니다.
ASP.NET 빈 웹 애플리케이션 애플리케이션에 기본 .aspx 페이지가 있는 경우 Azure 활동 로그배포 탭에서 URL을 선택합니다. 다른 페이지로 이동하려면 브라우저에서 <deployment_url>/<page_name>.aspx 양식의 URL을 입력합니다.
WCF Service Application
WCF Workflow 서비스 애플리케이션
.svc 파일을 WCF 서비스 프로젝트의 시작 페이지로 설정합니다. 그런 다음 <deployment_url>/<service_file>.svc로 이동합니다.
ASP.NET 동적 엔터티
ASP.NET 동적 데이터 LINQ to SQL
다음 섹션의 설명에 따라 연결 문자열을 업데이트합니다. 그런 다음 <deployment_url>/<page_name>.aspx로 이동합니다. Linq to SQL의 경우 Azure SQL 데이터베이스를 사용해야만 합니다.

ASP.NET 동적 엔터티의 연결 문자열 업데이트

  1. 앞에서 설명한 (#Use-an-azuresql-database-for-your-application)에 따라 ASP.NET 동적 엔터티 웹 애플리케이션에 대한 SQL Azure 데이터베이스를 만듭니다.

  2. Azure Portal에서 이 데이터베이스에 필요한 테이블과 필드를 추가합니다.

  3. web.config 파일에서 연결 문자열을 다음 형식으로 지정하고 파일을 저장합니다.

    <add name="tempdbEntities"
     connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=<server name>\SQLEXPRESS;initial catalog=<database name>;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;"
     providerName="System.Data.EntityClient"/>
    

    다음과 같이 SQL Azure 데이터베이스의 ADO.NET 연결 스트링을 사용하여 connectionString 값을 업데이트합니다.

    <add name="tempdbEntities"
     connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;Server=tcp:<SQL Azure server name>.database.windows.net,1433;Database=<database name>;User ID=<user name>;Password=<password>;Trusted_Connection=False;Encrypt=True;multipleactiveresultsets=True;App=EntityFramework&quot;"
     providerName="System.Data.EntityClient"/>
    

지원되는 프로젝트 템플릿

클라우드 서비스로 마이그레이션 및 게시할 수 있는 애플리케이션은 꼭 아래 테이블의 템플릿 중 하나를 사용해야 합니다. ASP.NET Core는 지원되지 않습니다.

템플릿 그룹 프로젝트 템플릿
ASP.NET 웹 애플리케이션(.NET Framework)
ASP.NET MVC 2 웹 애플리케이션
ASP.NET MVC 3 웹 애플리케이션
ASP.NET MVC4 웹 애플리케이션
ASP.NET 빈 웹 애플리케이션(또는 사이트)
ASP.NET MVC 2 빈 웹 애플리케이션
ASP.NET 동적 데이터 엔터티 웹 애플리케이션
ASP.NET 동적 데이터 LINQ to SQL 웹 애플리케이션
WCF WCF Service Application
WCF WCF Workflow 서비스 애플리케이션
워크플로 WCF Workflow 서비스 애플리케이션