Visual Studio 및 ASP.NET에 대한 웹 응용 프로그램 프로젝트 배포 FAQ
이 항목에서는 다음과 같은 제품을 사용 하 여 웹 응용 프로그램 프로젝트를 배포 하는 방법에 대 한 질문과 대답:
Visual Studio 2012
Visual Studio Express 2012 for Web
Visual Studio 2010에 Visual Studio 웹 게시 업데이트
Visual Web Developer 2010 Express에 Visual Studio 웹 게시 업데이트
많은 답변 게시 프로필 (.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 블로그를 참조 하십시오.
맨 위로 이동
왜 내 프로젝트 폴더에 파일을 모두 배포 얻을 하지?
프로젝트 메뉴 선택 패키지/제작 설정 열 수는 패키지/게시 웹 탭의 프로젝트 속성 창. 드롭다운 목록에 표시 된 구역은 항목 배포 (배포 방법 적용) 세 가지 옵션을 제공 합니다.
이 응용 프로그램을 실행하는 데 필요한 파일만. 기본값입니다. 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 데이터베이스를 배포할 수 있습니다.
마이그레이션 사용 하지 않고 코드에서 첫 번째 데이터베이스를 배포 하려면
Visual Studio 경우는 웹 게시 마법사 열기, 닫기가 있습니다.
응용 프로그램 Web.config 파일에서 데이터베이스에 대 한 추가 연결 문자열 요소를 만듭니다. 이 새 연결 문자열 요소 컨텍스트 클래스 이름 또는 완전히 정규화 된 클래스 이름을 일치 하지 않는 이름을 지정 합니다.
프로젝트를 빌드 및 다음 열은 웹 게시 작업 하려는 프로필을 선택 하 고 마법사.
설정 탭을 선택합니다.
이제 데이터베이스에 대 한 항목이 두 개 표시는 데이터베이스 섹션 탭은 코드의 첫 번째 컨텍스트 클래스 및 Web.config 파일에서 새 연결 문자열에 대 한 하나.
컨텍스트 클래스의 코드에서 첫 번째 항목에 원하는 응용 프로그램 실행된 시 사용 및 해제 하는 연결 문자열을 입력은 코드 첫 번째 마이그레이션 적용 확인란을 선택 합니다.
새 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 이상 버전에서 가능합니다. 배포 권한을 위임하는 방법에 대한 자세한 내용은 다음 항목을 참조하십시오.
Microsoft TechNet 웹 사이트의 사이트 및 응용 프로그램 관리 위임(IIS 7)
IIS.NET 웹 사이트의 Delegating Administration
맨 위로 이동
긴 배포 프로세스 동안 여러 번 다시 시작에서 내 응용 프로그램 도메인이 공유 하는 방법
응용 프로그램을 배포 하는 여러 복사 명령을 실행 해야 하는 상당한 시간 간격 사이 응용 프로그램 도메인 간의 복사 명령을 다시 시작 될 수 있습니다. 컴퓨터를 다시 시작 하지 않도록 하려면 추가 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
맨 위로 이동