다음을 통해 공유


Visual Studio 및 ASP.NET에 대한 웹 응용 프로그램 프로젝트 배포 FAQ

이 항목에서는 다음과 같은 제품을 사용 하 여 웹 응용 프로그램 프로젝트를 배포 하는 방법에 대 한 질문과 대답:

많은 답변 게시 프로필 (.pubxml) 파일 또는 wpp.targets 파일을 편집 하 여 배포 설정을 변경할 수 지시 합니다. 이를 수행하는 방법에 대한 자세한 내용은 방법: 게시 프로필(.pubxml) 파일의 배포 설정 및 Visual Studio 웹 프로젝트의 .wpp.targets 파일 편집를 참조하십시오.

이 항목에는 다음과 같은 단원이 포함되어 있습니다.

  • 특정 파일이나 폴더를 배포에서 제외할 수 있습니까?

  • 왜 내 프로젝트 폴더에 파일을 모두 배포 얻을 하지?

  • 내 프로젝트 폴더 외부의 특정 파일이 나 폴더를 포함할 수 있습니다?

  • Web.config 변환을 비활성화 하려면 어떻게 해야 합니까?

  • 언제 Web.config 변환 대신 웹 배포 매개 변수를 사용 해야?

  • 마이그레이션 사용 하지 않고 코드에서 첫 번째 데이터베이스 배포 하는 방법

  • 패키지를 배포 또는 게시 프로세스가 어떻게 디버깅할 수 있습니까?

  • One-Click 게시를 사용하여 HTTPS를 통해 원격 에이전트 서비스를 사용할 수 있습니까?

  • One-Click 게시를 사용하여 웹 배포 tempAgent 공급자 설정을 사용할 수 있습니까?

  • One-Click 게시를 통해 보관 용도로 패키지를 만들 수 있습니까?

  • 솔루션을 빌드할 때마다 패키지를 만들도록 지정할 수 있습니까?

  • 긴 배포 프로세스 동안 여러 번 다시 시작에서 내 응용 프로그램 도메인이 공유 하는 방법

  • ASP.NET 4가 이미 설치되어 있는데도 ASP.NET 4가 필요하다는 오류가 발생하는 이유는 무엇입니까?

  • CREATE USER 또는 CREATE ROLE 데이터베이스 명령을 실행하려고 하면 배포가 실패하는 이유는 무엇입니까?

  • 단일 패키지를 만들고 IIS 6 및 IIS 7에 배포하는 데 사용할 수 있습니까?

  • 왜 로컬 배포 성공 하지만 원격 배포 큰 파일에 대 한 실패 합니까?

특정 파일이나 폴더를 배포에서 제외할 수 있습니까?

웹 패키지 및 게시 탭에서 이 응용 프로그램을 실행하는 데 필요한 파일만 또는 이 프로젝트의 모든 파일 옵션을 선택하여 배포되는 파일을 제한할 수 있습니다. 이 프로젝트의 모든 파일 옵션을 선택하는 경우 솔루션 탐색기에서 파일을 마우스 오른쪽 단추로 클릭하고 프로젝트에서 제외를 선택하여 파일이 배포되지 않게 할 수 있습니다. 사용 하면 제외 된 파일에 대 한 자세한 내용은 이 응용 프로그램을 실행 하는 데 필요한 파일만 또는 이 프로젝트의 모든 파일 옵션을 참조 하십시오. 이유 없는 내 프로젝트 폴더에 파일을 모두 가져올 배포?.

이러한 옵션으로 대체할 수 없는 경우는.pubxml을 편집 또는. wpp.targets 파일 및 추가 ExcludeFilesFromDeployment 요소 또는 ExcludeFoldersFromDeployment 요소 (또는 둘 다)에 PropertyGroup 요소. 각 요소는 단일 이름을 지정할 수 있습니다 또는 다음 예제와 같이 세미콜론 (;)으로 구분 된 여러 개의 이름을 지정할 수 있습니다.

<PropertyGroup">
  <ExcludeFilesFromDeployment>
    File1.aspx;File2.aspx
  </ExcludeFilesFromDeployment>
  <ExcludeFoldersFromDeployment>
    Folder1;Folder2
  </ExcludeFoldersFromDeployment>
</PropertyGroup> 

자세한 내용은 다음 게시물 Sayed Hashimi 블로그를 참조 하십시오.

  1. 웹 배포 도구 (MSDeploy): 빌드 추가 파일을 포함 하거나 특정 파일 제외 패키지

  2. 웹 배포 도구 (MSDeploy): 패키지에서 파일을 제외 하는 구성에 따라

맨 위로 이동

왜 내 프로젝트 폴더에 파일을 모두 배포 얻을 하지?

프로젝트 메뉴 선택 패키지/제작 설정 열 수는 패키지/게시 웹 탭의 프로젝트 속성 창. 드롭다운 목록에 표시 된 구역은 항목 배포 (배포 방법 적용) 세 가지 옵션을 제공 합니다.

  • 이 응용 프로그램을 실행하는 데 필요한 파일만. 기본값입니다. Visual Studio 성공적으로 실행 하려면 응용 프로그램에 필요한 파일을 확인 하려고 합니다. 예를 들어이 어셈블리가 bin 폴더에서 빌드하는 동안 생성 되는 파일 포함 및 파일 표시로 컨텐트. 파일 이름으로 표시 된 경우 보려면 콘텐츠, 파일에서 선택 솔루션 탐색기, 및 해당 파일을 체크 빌드 작업 속성에는 속성 창. 변경할 수 있는 빌드 작업콘텐츠 파일을 배포할 수 또는 뭔가 다른, 같은 변경 될 수 없음파일 배포를 방지 하기 위해. 일부 파일 형식이 자동으로 설정 하는 컨텐트 는.master,.svc,.ashx,.asax,.skin,.browser,.config, 아랫부분에 사이트 맵. 하려면 파일을 프로젝트에 포함 되어야 합니다에 빌드 작업 속성.

  • 이 프로젝트의 모든 파일. Visual Studio 배포 프로젝트에 관계 없이 포함 된 모든 파일의 빌드 작업 속성 값입니다.

  • 프로젝트 폴더의 모든 파일이. Visual Studio 프로젝트 폴더와 프로젝트에 포함 된 되는지 여부에 관계 없이 하위 폴더에 있는 모든 파일을 배포 하거나 자신의 빌드 작업 속성 값입니다.

MSBuild 구문에 익숙한 경우 다음 세 가지 옵션 다음 파일에서 작동 하는 방법에 대 한 세부 정보를 찾을 수 있습니다.

  • Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets

  • Microsoft.Web.Publishing.AllFilesInTheProject.targets

  • Microsoft.Web.Publishing.AllFilesInProjectFolder.targets

Visual Studio 설치 되어 있는 컴퓨터에서 다음 위치에서 이러한 파일을 찾을 수 있습니다.

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\

맨 위로 이동

특정 파일이 나 폴더에서 내 프로젝트 폴더 외부 포함할 수 있습니다.

예. 이 작업을 수행 하는 방법에 대 한 자세한 내용은 패키지 빌드 추가 파일을 포함 하거나 특정 파일 제외 Sayed Hashimi 블로그를.

맨 위로 이동

Web.config 변환을 비활성화 하려면 어떻게 해야 합니까?

여러 옵션이 있습니다.

  • 특정 변환 변환 Web.config 파일에서 주석으로 처리 합니다.

  • 제작 프로 파일에 정의 된 빌드 구성에 대응 하지 않는 이름을 변환 파일을 이름을 바꿉니다. 예를 들어 Web.Debug.config를 Web.Debugx.config로 변경할 수 있습니다. (외부 Visual Studio 파일 이름을 바꿀 할 수도 있습니다.)

  • 변환 파일을 삭제 합니다. 파일을 사용자 지정한 경우 사용자 지정 내용이 손실됩니다.

  • .Pubxml 파일을 편집 또는. wpp.targets 파일 추가 TransformWebConfigEnabled 요소에는 PropertyGroup 요소 및 해당 값을 설정 False.

맨 위로 이동

언제 대신 Web.config 변환 웹 배포 매개 변수를 사용 해야?

웹 배포 매개 변수 보다 Visual Studio Web.config 변환을 설정 하는 더 복잡 하지만 매우 융통성이 있습니다. 웹 배포 매개 변수가 복잡 하 게 많은 다른 배포 등의 작업 업데이트 데이터베이스 스크립트 IIS 설정을 자동화할 수 있기 때문에 설정 됩니다. 웹 배포 매개 변수는 배포 패키지를 만들 때 및 배포 된 Web.config 파일로 이동 하는 데 필요한 값을 알 수 없는 패키지를 만들 때 Web.config 변환에 대 한 유용 합니다. 웹 배포 매개 변수 뿐 아니라 만들 때 패키지를 설치 하는 경우 매개 변수 값을 지정할 수 있습니다. 작성 하 고 배포 패키지를 설치 하려면 다른 사람에 대 한 공통 된 엔터프라이즈 환경에서 특히 유용 합니다. 예를 들어, 패키지를 만드는 개발자는 Web.config 파일에 있어야 하는 특정 암호 모를 수도 있습니다. 패키지를 설치할 때 설치 패키지는 IT 관리자 이러한 값을 입력할 수 있습니다. 자세한 내용은 VS 매개 변수화 . Web.config 변환 Vishal Joshi 블로그를 하 고 방법: 웹 배포 패키지에서 웹 배포 매개 변수 사용.

맨 위로 이동

마이그레이션 없이 코드에서 첫 번째 데이터베이스를 어떻게 배포 합니까?

데이터베이스에 액세스 하는 엔터티 프레임 워크 코드 첫 컨텍스트 클래스를 구현 하는 경우는 설정 탭의 웹 게시 마법사 첫 번째 마이그레이션 코드를 사용 하 여 해당 데이터베이스에 대 한 배포를 자동화 하 여 수 있습니다 확인란을 표시 합니다. 첫 번째 코드 API를 사용 하 여 데이터베이스만 액세스 하 고 코드에서 첫 번째 데이터베이스를 만들려면 사용 하지 않는 경우 마이그레이션 배포 사용할 수 없습니다. 이 시나리오에서는 원하는 수의 업데이트 데이터베이스 확인란 코드의 첫 번째 컨텍스트를 사용 하지 않는 SQL Server 데이터베이스를 배포할 수 있습니다.

마이그레이션 사용 하지 않고 코드에서 첫 번째 데이터베이스를 배포 하려면

  1. Visual Studio 경우는 웹 게시 마법사 열기, 닫기가 있습니다.

  2. 응용 프로그램 Web.config 파일에서 데이터베이스에 대 한 추가 연결 문자열 요소를 만듭니다. 이 새 연결 문자열 요소 컨텍스트 클래스 이름 또는 완전히 정규화 된 클래스 이름을 일치 하지 않는 이름을 지정 합니다.

  3. 프로젝트를 빌드 및 다음 열은 웹 게시 작업 하려는 프로필을 선택 하 고 마법사.

  4. 설정 탭을 선택합니다.

    이제 데이터베이스에 대 한 항목이 두 개 표시는 데이터베이스 섹션 탭은 코드의 첫 번째 컨텍스트 클래스 및 Web.config 파일에서 새 연결 문자열에 대 한 하나.

  5. 컨텍스트 클래스의 코드에서 첫 번째 항목에 원하는 응용 프로그램 실행된 시 사용 및 해제 하는 연결 문자열을 입력은 코드 첫 번째 마이그레이션 적용 확인란을 선택 합니다.

  6. 새 Web.config 파일의 연결 문자열에서 항목을 배포 하는 동안 스키마를 변경 하 고 선택 하는 데 사용할 연결 문자열을 입력 업데이트 데이터베이스.

    데이터베이스 배포 설정을 입력 하는 방법에 대 한 자세한 내용은 방법: Visual Studio에서 One-Click 게시를 사용하여 웹 응용 프로그램 프로젝트 배포.

맨 위로 이동

패키지를 배포 또는 게시 프로세스가 어떻게 디버깅할 수 있습니까?

패키지 및 게시의 자세한 정도는 MSBuild의 자세한 정도를 결정하는 동일한 Visual Studio 설정으로 제어됩니다. 주 메뉴에서 도구를 선택한 다음 옵션을 선택합니다. 옵션 대화 상자에서 프로젝트 및 솔루션을 확장한 다음 빌드 및 실행을 선택합니다. 그러면 MSBuild 프로젝트 빌드 출력의 자세한 정도 드롭다운 목록이 표시되고 목록에서 다음 옵션 중 하나를 선택할 수 있습니다.

  • 최소

  • 약간

  • 보통

  • 자세히

  • 매우 자세히

이러한 옵션은 명령줄에서 MSBuild를 실행할 때 /verbosity 또는 /v 플래그를 사용하여 설정할 수 있는 항목에 해당합니다. MSBuild 명령줄 플래그에 대 한 자세한 내용은 MSBuild 명령줄 참조.

맨 위로 이동

One-Click 게시를 사용하여 HTTPS를 통해 원격 에이전트 서비스를 사용할 수 있습니까?

아니요. 웹 게시 대화 상자의 서비스 URL 텍스트 상자에 HTTPS URL을 입력하면 Visual Studio에서 Windows 관리 서비스가 자동으로 사용됩니다. HTTPS를 사용하려면 Windows 관리 서비스를 사용하는 것이 좋습니다.

맨 위로 이동

One-Click 게시를 사용하여 웹 배포 tempAgent 공급자 설정을 사용할 수 있습니까?

아니요. tempAgent 공급자 설정을 사용하려면 웹 배포 명령줄이나 Visual Studio에서 배포 패키지를 만들 때 생성되는 deploy.cmd 파일을 사용해야 합니다.

맨 위로 이동

One-Click 게시를 통해 보관 용도로 패키지를 만들 수 있습니까?

두 개를 만들어 게시 프로필 프로젝트를 게시 하려면, 하나 하나 백업 패키지를 만듭니다. 프로젝트를 게시 한 후 누른 패키지를 만드는 제작 프로 파일 전환 하기만 하 고 게시 다시. 패키지를 만드는 제작 프로 파일을 만드는 방법에 대 한 자세한 내용은 방법: Visual Studio에서 웹 배포 패키지 만들기.

맨 위로 이동

솔루션을 빌드할 때마다 패키지를 만들도록 지정할 수 있습니까?

예. 프로젝트 파일을 편집하여 적절한 PropertyGroup 요소에서 DeployOnBuild 요소를 추가합니다. (프로젝트 파일을 편집 하는 방법에 대 한 자세한 내용은 방법: 프로젝트 파일에서 배포 설정 편집.) 다음 예제에서는 릴리스 빌드 구성에 대한 PropertyGroup 요소를 보여 줍니다.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  <DeployOnBuild>True</DeployOnBuild>
  <!-- Additional settings -->
</PropertyGroup>

프로젝트 파일에서이 변경 된 경우 있는지 확인은 PropertyGroup 요소를 업데이트 하기 전에 있는 Import 프로젝트 파일에서 문을. (의 DeployOnBuild 전에 속성을 설정할 수 있어야의 Import 의 Microsoft.Web.Publishing.targets.)

DeployDefaultTarget 요소도 Package로 설정되어야 합니다. 그러나 이것이 기본값이기 때문에 이 작업은 선택 사항입니다.

이 명령줄에서 솔루션을 빌드할 때 패키지 작성 자동 확인을 하지 않아도 됩니다. 자동으로 패키지 생성 작업 또한 Visual Studio 솔루션을 빌드할 때 추가한 다음 코드 프로젝트 파일을 가져온 후에 Import 에 대 한 Microsoft.CSharp.targets 또는 Microsoft.VisualBasic.targets.

<PropertyGroup> 
  <BuildDependsOn> 
    $(BuildDependsOn); 
    Package 
  </BuildDependsOn> 
</PropertyGroup>

맨 위로 이동

개발자가 스테이징 서버에 배포할 수 있지만 IIS 설정은 변경할 수 없도록 위임 규칙을 구성할 수 있습니까?

IIS 7 이상 버전에서 가능합니다. 배포 권한을 위임하는 방법에 대한 자세한 내용은 다음 항목을 참조하십시오.

맨 위로 이동

긴 배포 프로세스 동안 여러 번 다시 시작에서 내 응용 프로그램 도메인이 공유 하는 방법

응용 프로그램을 배포 하는 여러 복사 명령을 실행 해야 하는 상당한 시간 간격 사이 응용 프로그램 도메인 간의 복사 명령을 다시 시작 될 수 있습니다. 컴퓨터를 다시 시작 하지 않도록 하려면 추가 httpRuntime 요소(ASP.NET 설정 스키마) 요소는 Web.config 파일 및 설정에는 waitChangeNotification 특성의 응용 프로그램 도메인 간에 복사 명령을 다시 시작 되지 않도록 하려면 초 수입니다. 예를 들어 대기 시간을 5초로 지정하려는 경우 httpRuntime 요소는 다음 예제와 같습니다.

<configuration>
  <system.web>
        <compilation debug="false" targetFramework="4.0" />
    <httpRuntime 
      waitChangeNotification="5" />
  </system.web>
</configuration>

첫 번째 복사 명령이 실행된 후 응용 프로그램이 특정 간격 내에 다시 시작되도록 하려면 httpRuntime 요소에 maxWaitChangeNotification 특성을 추가하고 이 값을 대기할 최대 시간(초)으로 설정합니다. 예를 들어 두 특성이 모두 추가된 httpRuntime 요소가 있는 Web.config 파일은 다음 예제와 같습니다.

<configuration>
  <system.web>
    <httpRuntime 
      waitChangeNotification="5"
      maxWaitChangeNotification="10" />
  </system.web>
</configuration>

맨 위로 이동

ASP.NET 4가 이미 설치되어 있는데도 ASP.NET 4가 필요하다는 오류가 발생하는 이유는 무엇입니까?

ASP.NET 4 웹 응용 프로그램을 배포하려면 ASP.NET 4가 대상 서버의 IIS에 등록되어 있어야 합니다. 또한 배포할 IIS 웹 사이트의 응용 프로그램 풀이 .NET Framework 4에 할당되어야 합니다. 이러한 조건 중 하나에 해당하지 않으면 배포하려고 할 때 다음 오류 중 하나가 발생할 수 있습니다.

  • 기본 .NET 4.0 응용 프로그램 풀이 없거나 응용 프로그램을 추가할 수 없습니다. ASP.NET 4.0이 이 컴퓨터에 설치되어 있는지 확인하십시오.

  • 사용하려는 응용 프로그램 풀의 'managedRuntimeVersion' 속성이 'v2.0'(으)로 설정되어 있습니다. 이 응용 프로그램에는 'v4.0'이(가) 필요합니다.

ASP.NET 4는 Visual Studio를 설치할 때 설치됩니다. 그러나 설치 프로세스에서 IIS를 사용하여 ASP.NET 4를 자동으로 등록하지 않으며 기존 IIS 웹 사이트가 .NET 4 응용 프로그램 풀에 자동으로 할당되지 않습니다. 이 문제를 해결하려면 IIS를 사용하여 ASP.NET을 등록하고 대상 IIS 웹 사이트의 응용 프로그램 풀을 패키지에 필요한 .NET Framework 버전으로 설정합니다. IIS를 등록하는 방법에 대한 자세한 내용은 ASP.NET IIS Registration Tool (Aspnet_regiis.exe)를 참조하십시오.

맨 위로 이동

단일 패키지를 만들고 IIS 6 및 IIS 7에 배포하는 데 사용할 수 있습니까?

다음 조건 중 하나에 해당 될 경우 IIS 6 및 IIS 7을 배포 하는 동일한 패키지를 사용할 수 있습니다.

  • 웹 패키지 및 게시 탭에서 IIS 관리자에서 구성된 모든 IIS 설정 포함 옵션을 선택하지 않습니다.

  • IIS 관리자에서 구성된 모든 IIS 설정 포함 옵션을 선택하고 IIS 6에서 패키지를 만듭니다.

IIS 관리자에서 구성된 모든 IIS 설정 포함 옵션을 선택하면 IIS 7에서 만들어진 패키지를 IIS 6에 배포할 수 없습니다.

맨 위로 이동

왜 로컬 배포 성공 하지만 원격 배포 큰 파일에 대 한 실패 합니까?

일반적으로 프로덕션 서버에 배포 하는 경우 방화벽을 통해 배포 하는 경우 스트림의 끝 오류 큰 파일을 가져올 경우 방화벽의 설정을 확인 합니다. 배포 실패의 원인을 경우 원본 컴퓨터에서 다음 예제와 같은 오류 메시지가 나타날 수 있습니다.

Warning: Retrying the sync because a socket error (10054) occurred.

Retrying operation 'Serialization' on object MSDeploy.contentPath (sourcePath).

대상 서버에서 다음 예제와 같은 오류 메시지가 나타날 수 있습니다.

System.Net.HttpListenerException: An operation was attempted on a nonexistent network connection

맨 위로 이동

참고 항목

개념

Visual Studio 및 ASP.NET에 대한 웹 배포 콘텐츠 맵