문제

TeamCity를 한 서버에서 다른 서버로 마이그레이션하고 Visual Studio 2013으로 전환한 후 MSDeploy를 사용하여 TC에서 빌드한 .zip 패키지를 IIS에 푸시하면 빌드가 실패합니다.

사용하려는 애플리케이션 풀에는 'v4.0'으로 설정된 'ManagedRuntimeVersion'속성이 있습니다.이 응용 프로그램에는 'v4.5'가 필요합니다.

내 IIS 서버에 .NET 4.5가 설치되어 있고 몇 주 동안 성공적으로 실행 및 배포되었으며 4.0 응용 프로그램 풀이 4.5 대상 응용 프로그램을 실행하기 때문에 이것은 이상한 오류입니다.

불행하게도 TC와 VS(2013)의 변경으로 인해 물이 더러워졌기 때문에 문제의 원인이 무엇인지 확신할 수 없습니다.

메모:우리 TC 서버에는 Visual Studio 2012만 있습니다. 저는 MSDN을 사용하고 있고 2013에 대한 초기 액세스 권한을 얻었기 때문입니다.이것이 범인일 수 있지만 문제가 덜 이상해지는 것은 아닙니다.

도움이 되었습니까?

해결책

.NET 런타임 버전 확인을 전혀 비활성화하지 않고(IgnoreDeployManagedRuntimeVersion 사용) 대신 DeployManagedRuntimeVersion을 통해 암시적으로 런타임 버전을 설정하는 것을 선호합니다.

<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>

좀 더 자세한 내용은 다음과 같습니다. http://techblog.dorogin.com/2013/11/deploying-45-projects-with-webdeploy.html

다른 팁

당신의 .csproj 파일을 작성하고 다음 요소를 설정하십시오.

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>

이 요소 바로 위에 추가하면 가독성에 도움이 됩니다.

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

감사합니다 https://stackoverflow.com/users/1769923/abhishikt-n-jain 잘 알려지지 않은 구성 설정에 대한 답변은 다음과 같습니다.

.NET 4.5로 업그레이드한 후 MSBuild 배포가 실패함

아는 사람이라면 이런 일이 발생하면 언제든지 답변을 추가해 주세요.

업데이트

아래 내 의견을 무시하십시오.배치를 통과하는 동안 나는 503 Service Unavailable 실제로 웹앱을 실행하려고 했을 때.나는 다음을 설정하여 이 변경 사항을 취소했습니다. managedRuntimeVersion 속성을 v4.0으로 되돌리고 다음을 추가했습니다. IgnoreDeployManagedRuntimeVersion 내 프로젝트에.그런 다음 배포가 성공하고 앱이 작동했습니다.멍청한...


Powershell 업그레이드의 일부로 Windows Server 2008 R2 SP1 시스템에 .NET Framework 4.5.1을 설치한 후에 이런 일이 발생했습니다.

Windows Server 2008의 IIS 사용자 인터페이스는 다음을 설정하는 옵션을 제공하지 않습니다. managedRuntimeVersion 해당 버전이 설치된 후에도 속성이 v4.5로 변경됩니다.그러나 이 작업은 명령줄에서 다음을 사용하여 수행할 수 있습니다. appcmd @3boysdad의 답변이 보여주는 유틸리티입니다.

appcmd IIS 사이트, 앱, 앱 풀 등을 관리하는 것과 동일한 명령줄입니다.그것은에 위치하고 있습니다 %systemroot%\system32\inetsrv\appcmd.exe 그러나 다음 링크에서 설명하는 것처럼 PATH에 없습니다.

http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe#HowToUse

나는 귀하의 프로젝트를 수정하는 것이 IgnoreDeployManagedRuntimeVersion 또는 DeployManagedRuntimeVersion 속성)은 차선책입니다.응용 프로그램 풀은 v4.5를 사용하도록 설정되어야 하며 Windows Server 2008에서 이를 수행하는 유일한 방법은 appcmd 공익사업.@3boysdad의 답변이 허용되는 답변이어야 합니다.

동일한 문제를 찾기 위해 이리저리 검색하다가 이 보석을 발견했습니다.

appcmd set apppool /apppool.name: <your app pool> /managedRuntimeVersion:v4.5

이 작업은 \System32\inetsrv 디렉터리에서 실행되어야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top