내보내기(0) 인쇄
모두 확장

패키지 인증 경고 문제 해결 및 오류

업데이트 날짜: 2014년 8월

패키지를 만들거나 Azure 클라우드 서비스 프로젝트를 게시할 때 하나 이상의 경고 또는 오류가 나타날 수 있습니다. 이러한 경고 및 오류를 통해 프로젝트가 배포 또는 게시되지 않는 문제를 파악하고 해결할 수 있습니다. 패키징 단계에서 경고 또는 오류를 수신하면 Azure 프로젝트를 배포하기 전에 이러한 문제를 수정하여 시간을 절약할 수 있습니다. 따라서 배포가 완료될 때까지 기다린 끝에 오류가 발생하는 경우가 없게 됩니다.

기본적으로 패키지 유효성 검사 문제는 경고로 처리되며 이로 인해 역할 배포가 금지되지는 않습니다. 기본값을 변경하고 배포를 금지하려면 Azure 프로젝트에 대한 경고를 오류로 처리 속성을 True로 설정합니다. See 방법: Visual Studio를 사용하여 Azure 클라우드 서비스 프로젝트 구성.

다음 표에는 Azure 프로젝트에 대한 패키지 유효성 검사 시 발생하는 주요 경고와 각 경고에 대한 세부 정보로 연결되는 링크가 나와 있습니다.

 

오류 번호

메시지

추가 정보

WAT150

프로젝트 ‘ProjectName’은(는) 어셈블리 ‘AssemblyName’에 종속됩니다. 이 어셈블리는 패키지에 없습니다. 역할이 시작되는지 확인하려면 이 어셈블리를 프로젝트에 참조로 추가하고 로컬 복사 속성을 true로 설정합니다.

Include Files in the Service Package

WAT151

프로젝트 ‘ProjectName’은(는) 어셈블리 ‘AssemblyName’에 종속됩니다. 이 어셈블리는 패키지에 없으며 GAC에 설치해야 합니다. 역할이 시작되는지 확인하려면 이 어셈블리를 프로젝트에 참조로 추가하고 로컬 복사 속성을 true로 설정합니다. 그런 다음 역할의 시작 작업을 사용하여 어셈블리를 GAC에 추가합니다.

WAT152

프로젝트 ‘ProjectName’은(는) 어셈블리 ‘AssemblyName’에 종속됩니다. 이 어셈블리는 Windows Installer 파일(.msi)로 GAC에 설치됩니다. 역할이 시작되는지 확인하려면 역할의 시작 작업을 사용하여 이 Windows Installer 파일을 설치하거나 이 어셈블리를 프로젝트에 참조로 추가하고 로컬 복사 속성을 true로 설정해야 합니다.

WAT153

웹 프로젝트 ‘ProjectName은(는) MVC 어셈블리 AssemblyName에 종속됩니다. 이러한 어셈블리는 패키지에 추가하거나 역할에 대한 가상 컴퓨터에 설치해야 합니다. 자세한 내용은 도움말 페이지(http://go.microsoft.com/fwlink/?LinkId=218227)를 참조하십시오.

MVC 프로젝트를 웹 역할로 게시

WAT160

프로젝트 ‘ProjectName’은(는) 어셈블리 ‘AssemblyName’에 종속됩니다. 이 어셈블리는 Azure의 IIS에서 사용된 64비트 프로세서 아키텍처와 호환되지 않습니다. 역할이 시작되도록 하려면 이 어셈블리를 해당 아키텍처와 호환되는 것으로 교체해야 합니다.

IIS에서 32비트 응용 프로그램을 실행하도록 구성하는 시작 작업이 있는 경우 이 경고 메시지를 무시할 수 있습니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 시작 작업을 사용하여 IIS 응용 프로그램 풀에 32비트 응용 프로그램 모드 활성화를 참조하십시오.

그렇지 않으면 프로젝트에서 어셈블리를 제거하고 64비트 프로세서 아키텍처와 호환되는 어셈블리를 추가합니다. 그런 다음 응용 프로그램을 다시 패키징하거나 게시합니다.

WAT170

구성 설정 'SettingName'이(가) 구성 파일 'FileName' 내의 'RoleName' 역할에 대한 로컬 저장소 에뮬레이터를 사용하도록 설정되어 있습니다. Azure 저장소 서비스에 액세스하려면 유효한 Azure 저장소 연결 문자열을 입력해야 합니다.

유효한 Azure 저장소 연결 문자열을 추가하는 방법에 대한 자세한 내용은 Visual Studio에서 클라우드 서비스를 게시하는 데 필요한 서비스 설정을 참조하십시오.

WAT180

유효성 검사 오류로 인해 패키지 만들기가 실패했습니다. 오류를 해결하거나 이 Azure 프로젝트에 대한 경고를 오류로 처리 속성을 false로 설정해야 합니다.

경고를 오류로 처리 속성을 설정하는 방법에 대한 자세한 내용은 방법: Visual Studio를 사용하여 Azure 클라우드 서비스 프로젝트 구성을 참조하십시오.

WAT190

프로젝트 'ProjectName'은(는) '.NETFrameWorkVersion'을 대상으로 합니다. 역할이 반드시 시작되도록 하려면 이 역할의 가상 시스템에 이 버전의 .NET Framework가 설치되어 있어야 합니다. 필요한 버전이 Azure 게스트 OS의 일부로 이미 설치되어 있지 않은 경우 시작 작업을 사용하여 필요한 버전을 설치할 수 있습니다.

역할의 시작 작업을 사용하여 임의 버전의 .NET Framework를 설치합니다.

WAT230

연결 문자열 'DefaultConnection'이(가) 프로젝트 'ProjectName'의 '.\SQLEXPRESS' 데이터베이스를 사용하고 있습니다. 이 연결 문자열은 이 응용 프로그램을 Azure에서 실행할 경우 작동하지 않습니다. 다른 데이터베이스에 액세스하려면 web.config 파일의 연결 문자열을 업데이트해야 합니다. 자세한 내용은 도움말 페이지(http://go.microsoft.com/fwlink/?LinkId=224877)를 참조하십시오.

SQL Azure 데이터베이스를 범용 ASP.NET 공급자와 함께 사용

역할이 시작되지 않으면 패키지 빌드/배포 출력 창을 확인해서 유효성 확인 경고 또는 오류가 없는지 확인해야 합니다. 프로젝트를 게시할 때 원격 데스크톱 연결을 설정하면 가상 컴퓨터에 액세스하고 모든 문제를 진단할 수 있습니다. 자세한 내용은 Azure 역할과 함께 원격 데스크톱 사용을 참조하세요.

역할이 시작되지 않는 이유를 확인하는 다른 방법은 배포에 IntelliTrace를 활성화하는 것입니다. 자세한 내용은 IntelliTrace 및 Visual Studio를 사용하여 게시된 클라우드 서비스 디버깅시작하지 못하는 역할 문제 해결를 참조하십시오.

가상 컴퓨터에서 역할을 만들면 가상 컴퓨터를 만든 후부터 역할이 시작되기 전까지 실행되는 시작 작업을 추가하려는 경우가 있습니다. 이 작업으로 역할을 성공적으로 시작할 수 없습니다. 예를 들어 다음 작업 중 하나를 수행하려는 경우가 있습니다.

  • Windows Installer 파일을 설치합니다.

  • GAC에 어셈블리를 추가합니다.

  • 역할에 필요한 특정 버전의 .NET Framework를 설치합니다.

역할에 추가하는 시작 작업이 명령줄에서 실행됩니다. 명령 집합을 실행하는 배치 파일을 만들거나 실행하려는 특정 명령을 추가할 수 있습니다. 서비스 패키지가 배포될 때 시작 작업에 대한 파일이 추가되도록 해당 파일을 프로젝트에 추가합니다. 그런 다음 해당 역할의 가상 컴퓨터가 생성되면 이러한 파일을 사용하여 시작 작업이 실행됩니다.

Important중요
시작 작업의 파일이 하위 폴더에 있는 경우 명령이 가상 컴퓨터에서 실행될 때 시작 작업이 배치 파일의 디렉터리에 액세스해야 할 수도 있습니다. 다음 변수를 사용하여 배치 파일의 디렉터리에 액세스할 수 있습니다. %~dp0. 이 변수에는 배치 파일에 대한 드라이브와 경로가 포함되어 있으며 경로 마지막에 백슬래시를 추가합니다. 예를 들어 다음 명령을 사용하여 배치 파일과 같은 폴더에 있는 .exe 파일(StartUp.exe)을 실행할 수 있습니다. %~dp0StartUp.exe.

  1. (선택 사항) 시작 작업에 대해 명령 집합을 함께 실행하려는 경우 배치 파일을 만들 수 있습니다. 시작 작업을 실행하기 위해 만드는 파일에는 바이트 순서 표시가 없어야 합니다. 이 문제를 방지하려면 메모장을 사용하여 시작 작업을 실행하기 위한 파일을 만들거나 Visual Studio에서 만든 파일을 인코딩하여 저장해야 합니다. 파일을 Visual Studio에서 인코딩하여 저장하려면 다음 절차를 따르십시오.

    1. 파일을 Visual Studio에서 인코딩하여 저장하려면 파일이 Visual Studio 편집기 창에 표시되는지 확인해야 합니다. 메뉴 모음에서 파일, 다른 이름으로 <Filename> 저장을 차례로 선택합니다.

      다른 이름으로 파일 저장 대화 상자가 표시됩니다.

    2. 파일을 인코딩하여 저장하려면 저장 단추의 드롭다운 화살표를 선택하고 인코딩하여 저장을 선택합니다.

      고급 저장 옵션 대화 상자가 표시됩니다.

    3. 인코딩 목록에서 유니코드(서명 없는 UTF-8) - 코드 페이지 65001을 선택한 다음 확인 단추를 선택합니다.

  2. 시작 작업의 폴더를 추가하려면 시작 작업이 필요한 역할에 대한 프로젝트에 폴더를 만듭니다. 예를 들어 해당 프로젝트가 Windows Installer 파일을 설치해야 하는 WebRole1이라는 웹 역할 프로젝트인 경우 이 웹 역할 프로젝트에 Startup이라는 폴더를 추가합니다.

  3. 이 폴더에 파일을 추가하려면 폴더의 바로 가기 메뉴를 열고 추가, 기존 항목을 선택합니다. 배치 파일을 포함하여 시작 작업에 필요한 파일을 선택한 다음 추가 단추를 선택합니다.

    생성한 폴더 아래의 솔루션 탐색기에 파일이 표시됩니다.

  4. 이러한 파일을 서비스 패키지에 포함하되 이러한 파일을 빌드하지 않으려면 각 파일에 대한 바로 가기 메뉴를 연 다음 속성을 선택합니다. 속성 보기의 빌드 작업 드롭다운 목록에서 없음을 선택하고 출력 디렉터리로 복사 드롭다운 목록에서 변경된 내용만 복사를 선택합니다.

  5. 역할에 시작 작업을 추가하려면 ServiceDefinition.csdef 서비스 정의 파일에 대한 바로 가기 메뉴를 열고 열기를 선택합니다. 이 시작 작업이 필요한 역할 요소에 다음 XML 문을 추가합니다. 이 명령은 사용자가 Startup이라는 시작 작업에 대해 폴더를 만들었고 이 배치 파일 또는 명령에 높은 권한이 필요하다는 것을 가정합니다. 명령은 .exe 파일, 배치 파일,.msi 파일 또는 유효한 모든 명령줄 문이 될 수 있습니다.

    
    <Startup>
       <Task commandLine="startup\<command>" executionContext="elevated" taskType="simple" />
    </Startup>
    
    

    추가 시작 작업이 추가된 서비스 정의 파일의 webrole 요소의 예는 다음과 같습니다.

    
    <WebRole name="WebRole1">
        <Sites>
          <Site name="Web">
            <Bindings>
              <Binding name="Endpoint1" endpointName="Endpoint1" />
            </Bindings>
          </Site>
        </Sites>
        <Endpoints>
          <InputEndpoint name="Endpoint1" protocol="http" port="80" />
        </Endpoints>
        <Imports>
          <Import moduleName="Diagnostics" />
          <Import moduleName="RemoteAccess" />
          <Import moduleName="RemoteForwarder" />
        </Imports>
        <Startup>
          <Task commandLine="startup\StartUpTask.cmd" executionContext="elevated" />
        </Startup>
    </WebRole>
    
    
  6. 시작 작업이 실행되는지 확인하려면 Azure 프로젝트를 게시합니다. 필요할 경우 프로젝트를 게시할 때 역할에 대한 가상 컴퓨터의 원격 데스크톱 연결을 만들 수 있습니다. 그런 다음 가상 컴퓨터에 연결하고 시작 작업이 올바르게 실행되었는지 확인할 수 있습니다. Azure 역할로 원격 데스크톱을 사용하는 방법에 대한 자세한 내용은 Azure 역할과 함께 원격 데스크톱 사용을 참조하십시오.

자세한 내용은 역할에 대한 시작 작업 정의을 참조하세요. 시작 작업에 환경 변수를 사용해야 하는 경우 서비스 정의 파일의 역할에 대해 환경 변수를 정의할 수 있습니다. 자세한 내용은 역할이 시작되기 전에 환경 변수 정의 또는 Azure에서 시작 작업 실행을 참조하십시오.

웹 역할로서의 MVC 프로젝트를 Azure에 게시하려면 Azure에서 웹 역할이 실행될 때 필요한 모든 MVC 어셈블리를 사용할 수 있어야 합니다. 최신 Azure Tools for Visual Studio에서 제공하는 템플릿을 사용하여 MVC 프로젝트를 웹 역할로 만들면 필요한 어셈블리가 서비스 패키지로 자동 추가됩니다. 이 경우 서비스 패키지가 만들어질 때 MVC 어셈블리가 없다는 경고 메시지가 나타나지 않습니다.

MVC 어셈블리가 없는 경고 메시지를 수정하려면 MVC 프로젝트에 적용되는 절차의 단계를 수행해야 합니다.

  1. Visual Studio 서비스 팩 1을 사용하여 Azure 프로젝트를 게시하는 경우 다음 단계에 따라 참조를 어셈블리에 추가하고 서비스 패키지에 포함시킵니다.

    1. MVC 프로젝트에 대한 바로 가기 메뉴를 열고 배포 가능한 종속성 추가를 선택합니다.

      배포 가능한 종속성 추가 대화 상자가 나타납니다.

    2. ASP.NET MVC 확인란을 선택하고 확인 단추를 선택합니다.

      이제 서비스 패키지를 만들면 어셈블리가 추가됩니다. 그런 다음 서비스 패키지가 배포될 때 이 역할에 대한 가상 컴퓨터에 어셈블리가 설치됩니다.

  2. Azure 프로젝트를 게시하는 데 Visual Studio 서비스 팩 1을 사용하지 않는 경우 Azure에 Azure 프로젝트를 배포할 때 올바르게 실행된다는 것을 확인하기 위해 다음 작업 중 하나를 수행할 수 있습니다.

    1. 웹 역할 프로젝트에 다음 어셈블리에 대한 참조를 추가한 다음 로컬 복사 속성을 True로 설정합니다.

      • Microsoft.Web.Infrastructure

      • System.Web.Helpers

      • System.Web.Mvc

      • System.Web.Razor

      • System.Web.WebPages

      • System.Web.WebPages.Deployment

      • System.Web.WebPages.Razor

      note참고
      웹 역할 프로젝트에 어셈블리에 대한 참조를 추가하는 방법에 대한 자세한 내용은 Include Files in the Service Package을 참조하십시오.

    2. MVC3 어셈블리를 설치하려면 웹 역할에 시작 작업을 추가합니다. 시작이라는 프로젝트에 폴더를 만듭니다. 그런 다음 이 폴더에 AspNetMVC3Setup.exe 파일을 추가합니다. 마지막으로 이 XML을 웹 역할 요소 내의 서비스 정의 파일에 추가합니다.

      
      <Startup>
         <Task commandLine="startup\AspNetMVC3Setup.exe /q /log mvc3_install.htm" executionContext="elevated" />
      </Startup>
      
      

  1. MVC2 프로젝트에 이 경고 메시지가 나타나면 System.Web.Mvc 어셈블리에 대한 참조가 웹 역할 프로젝트에 이미 추가되지 않았기 때문입니다. 이 어셈블리를 서비스 패키지에 포함하려면 이 어셈블리에 대한 바로 가기 메뉴를 열고 속성을 선택합니다.

    속성 창이 나타납니다.

  2. 로컬 복사 목록에서 True를 선택합니다.

Azure tools for Visual Studio로 MVC3 웹 역할을 만들면 웹 역할이 범용 ASP.NET 공급자를 사용하도록 설정됩니다. 기본적으로 이러한 공급자는 DefaultConnection 연결 문자열에 LocalDB 데이터베이스를 사용하도록 구성되어 있습니다. Azure 프로젝트를 게시할 때는 Azure에서 호스팅하는 SQL 데이터베이스 인스턴스를 사용하도록 연결 문자열을 변경해야 합니다.

Important중요
이렇게 하려면 Azure에서 호스팅하는 SQL 데이터베이스 인스턴스를 사용할 수 있도록 해 주는 구독이 있어야 합니다. Azure 관리 포털에서 구독에 액세스하는 경우 구독에서 제공하는 서비스를 확인할 수 있습니다. 자세한 내용은 방법: Visual Studio에서 Azure에 웹 응용 프로그램 마이그레이션 및 게시을 참조하세요.

참고 항목

표시:
© 2014 Microsoft