Visual Studio에서 Azure 함수를 게시하려고 할 때 오류가 발생했습니다.


13

Visual Studio를 사용하여 함수를 게시하려고 할 때 다음 오류 메시지가 표시됩니다. 어떻게 해결할 수 있습니까?

System.AggregateException : 하나 이상의 오류가 발생했습니다. ---> System.Exception : 게시에 오류가 발생했습니다. 오류 원인을 확인할 수 없습니다. 자세한 내용은 출력 로그를 확인하십시오. --- 내부 예외 스택 추적 끝 --- Microsoft.Publish.Framework의 System.Threading.Tasks.Task.Wait (Int32 millisecondsTimeout, CancellationToken cancelToken)의 System.Threading.Tasks.Task.ThrowIfExceptional (Boolean includeTaskCanceledExceptions)에서 System.Threading.Tasks.Task`1.InnerInvoke ()의 System.Threading.Tasks.Task`Execute ()에서 Model.DefaultPublishSteps. <> c__DisplayClass26_0.b__2 () --- 예외가 있던 이전 위치의 스택 추적 끝 System.Runtime.CompilerServices의 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 작업)에서 ---가 발생했습니다. Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext ()의 TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 작업) --- 예외가 발생한 이전 위치의 스택 추적 끝 --- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 작업)의 (작업 작업) Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (내부 예외 # 0)의 System.Exception : Publish has 오류가 발생했습니다. 오류 원인을 확인할 수 없습니다. 자세한 내용은 출력 로그를 확인하십시오. <--- MoveNext () --- 예외가 발생한 이전 위치에서 스택 추적 끝 --- Microsoft.System.Runtime.CompilerServices.TaskAwaiter.System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 작업)에서 Microsoft의 스택 추적 끝 .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (내부 예외 # 0) System.Exception : 게시에 오류가 발생했습니다. 오류 원인을 확인할 수 없습니다. 자세한 내용은 출력 로그를 확인하십시오. <--- MoveNext () --- 예외가 발생한 이전 위치에서 스택 추적 끝 --- Microsoft.System.Runtime.CompilerServices.TaskAwaiter.System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 작업)에서 Microsoft의 스택 추적 끝 .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (내부 예외 # 0) System.Exception : 게시에 오류가 발생했습니다. 오류 원인을 확인할 수 없습니다. 자세한 내용은 출력 로그를 확인하십시오. <--- d__213.MoveNext () ---> (내부 예외 # 0) System.Exception : 게시에 오류가 발생했습니다. 오류 원인을 확인할 수 없습니다. 자세한 내용은 출력 로그를 확인하십시오. <--- d__213.MoveNext () ---> (내부 예외 # 0) System.Exception : 게시에 오류가 발생했습니다. 오류 원인을 확인할 수 없습니다. 자세한 내용은 출력 로그를 확인하십시오. <---

System.Exception : 게시에 오류가 발생했습니다. 오류 원인을 확인할 수 없습니다. 자세한 내용은 출력 로그를 확인하십시오.

====================


나는 실행 해요 유사한 문제 비주얼 스튜디오 2019의 순간 - 나는 내 경우 폴더에 게시하려고 해요하지만. 나는 여전히이 원인을 추적하려고 노력하고 있지만, 지금까지 이것을 시도했습니다 : 1.) NuGet 캐시 지우기, 2.) bin 및 obj 폴더 제거 3.) 새 폴더 프로파일 생성 출력 로그 파일에서 무엇을 볼 수 있습니까? 유용한 것이 있습니까?
VirtualValentin

당신은을 통해 힘내을 통해 배포하는 것을 시도했다Deployment Center
pavle

답변:


8

할 수 있겠 니 this

Azure Portal의 Azure Functions 응용 프로그램 설정에서 WEBSITE_RUN_FROM_PACKAGE 설정을 완전히 제거하십시오.


2
나는 아무런 성공없이 그것을했습니다.
Recusiwe

이것은 나를 위해 일했습니다. 환경이 변경되거나 차단 구성 인 경우 Azure 기능을 '다시 시작'하는 것과 관련이 있는지 확실하지 않습니다.
저스틴 네프

5

이것은 Visual Studio 시간 초과 문제이므로 코드와 다른 설정이 문제의 핵심이 아닙니다. Visual에서 릴리스에 시간 제한을 설정하기 때문에이 오류가 발생합니다. (파일이 너무 크거나 인터넷 속도가 불안정합니다)

배포 프로젝트가 너무 크지 않으면 네트워크 속도가 안정 될 때까지 기다렸다가 실행 해보십시오. 물론 zip deploy 와 같은이 문제를 피하기 위해 다른 배포 방법을 시도 할 수도 있습니다 .


zipdeploy를 사용하여 성공적으로 배포했습니다. 그러나 앱 콘텐츠를 확인하면 업데이트되지만 기능을 실행할 때 이전 버전을 실행하는 것 같습니다.
Recusiwe

@Recusiwe '이전 버전 실행'의 의미는 무엇입니까? azure 기능의 버전이 변경 되었습니까? zip deploy가이 문제를 해결 했습니까?
BowmanZhu

"이전 버전"이란 압축 배포 된 버전이 아니라 VS에서 게시 할 수있는 마지막 버전을 의미합니다. 앱 콘텐츠에는 배포 된 zip 코드가 포함되어 있지만 실행되지는 않습니다. 이전 버전을 실행합니다.
Recusiwe

@Recusiwe 현재 사용중인 기능 버전은 무엇입니까? 현재 어떤 IDE를 사용하고 있습니까? 그리고 프로젝트의 어셈블리 ( .csproj파일)는 전에 비슷한 오류에 직면했습니다. 그 당시의 어셈블리 문제 인 것 같습니다. 때때로이 오류는 Visual Studio 2019에서만 발생합니다. Visual Studio 2017을 사용하여이 예외가 여전히 존재하는지 확인할 수 있습니다. Visual Studio 2017을 사용하는 경우 Resharper를 사용합니까? 오류를 재현하려고 시도하고 비슷한 오류를 만나려고하지만 이것이 귀하의 상황과 관련이 있는지 확실하지 않습니다.
BowmanZhu

기능 앱 v. 2 및 Visual Studio 16.4.1
Recusiwe

0

GitHub와 같은 플레이 폼에서 프로젝트를 공유하지 않으면 특정 조언을 제공하기가 어렵습니다. 변수가 너무 많고 NuGET 패키지와 참조의 조합이 너무 많아 프로젝트가 충돌 할 수있는 방식으로 발생할 수 있습니다. 오류.

특히 v2 함수의 경우이 문제 또는 유사한 문제가 여러 번 발생했습니다. Functions의 가장 큰 요소 중 하나는 v1과 v2 간의 경쟁 개념입니다.

Visual Studio 게시 마법사를 사용하여 Azure에서 대상 리소스를 만들 때 잠시 동안 어려움을 겪고 있다면 더 큰 성공을 거두는 경향이 있습니다. 다른 방법이 없다면 개념 증명 으로이 프로세스를 따르는 것이 좋습니다.

이 조언은 VS2017과 2019에서 똑같이 잘 작동합니다.

  1. 동일한 솔루션으로 Visual Studio에서 새 기능 프로젝트를 작성하십시오.
    • 원래 기능의 이름을 복제
  2. 함수를 Azure 리소스에 게시하고 게시 마법사를 사용하여이 리소스를 만듭니다.
  3. 게시가 성공한 경우 :
    • 원래 프로젝트 코드를 새 프로젝트로 이동
    • 가져 오려는 너겟 패키지의 버전에주의를 기울이십시오. 패키지와 그 종속성은 v2 호환이어야합니다.
  4. 출판 경우 NOT 성공
    • Visual Studio를 최신 버전으로 업그레이드하십시오.
    • Azure 도구도 최신으로 업그레이드해야합니다

일반적으로 Azure Functions의 일반적인 성공을 위해 :

  1. 닷넷 프레임 워크 프로젝트에 사용 v1의 경우, 또는 어떤 참조 프로젝트 나 NuGET 패키지는 닷넷 FX는 종속성이 있습니다. (따라서 .Net 4 + ... 또는 .Net Core 가 아닌 것 )

    이러한 종속성이 여러 프로젝트를 대상으로하는 경우에도 기능을 사용 하면 배포 중에 NuGET 종속성을 평가할 때 올바른 플랫폼을 올바르게 감지 할 수 없으므로 배포가 실패하는 경향이 있습니다.

  2. v2를 사용 ONLY 을 위해 닷넷 핵심 프로젝트, 당신의 참조는 단지 있는지 확인 닷넷 핵심

점진적으로 코드를 컴파일 및 게시하고 AzureDevOps 또는 GitHub 또는 기타 소스 코드 리포지토리를 사용하여 함수로 코드를 자주 체크인합니다. 함수 프로젝트의 초기 단계에서 종종 여러 개의 굴절 및 NuGET 패키지를 가져 오며 로컬에서는 작동하지만 배포 할 때는 작동하지 않는 것 같습니다.

  • 소스 코드 저장소를 사용하면 새 패키지를 설치하기 전에 변경 사항을 커밋하고 패키지를 설치할 때 배포 할 수없는 코드 인 경우 롤백하기가 쉽습니다.
  • 지저분 해 보이지만 NuGet 버전 관리로 인해 패키지를 설치하기 전에 상태로 돌아가서 해당 패키지를 제거하는 것만 큼 간단하지는 않지만 다른 패키지를 매우 쉽게 업그레이드했을 수 있습니다.이 변화하는 Azure 환경에서 많은 패키지 작성자가 .Net Framework와 .Net Core 간의 리소스를 관리하고 항상 잘 수행 한 것은 아니며 Azure Functions에서 충돌을 일으킬 수있는 일부 .Net Framework 요소를 유지하는 경우도 있습니다.

도움이 될만한 흥미로운 토론이 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.