[visual-studio] Visual Studio에서 Azure 함수를 게시하려고 할 때 오류가 발생했습니다.
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 : 게시에 오류가 발생했습니다. 오류 원인을 확인할 수 없습니다. 자세한 내용은 출력 로그를 확인하십시오.
====================
답변
할 수 있겠 니 this
Azure Portal의 Azure Functions 응용 프로그램 설정에서 WEBSITE_RUN_FROM_PACKAGE 설정을 완전히 제거하십시오.
답변
이것은 Visual Studio 시간 초과 문제이므로 코드와 다른 설정이 문제의 핵심이 아닙니다. Visual에서 릴리스에 시간 제한을 설정하기 때문에이 오류가 발생합니다. (파일이 너무 크거나 인터넷 속도가 불안정합니다)
배포 프로젝트가 너무 크지 않으면 네트워크 속도가 안정 될 때까지 기다렸다가 실행 해보십시오. 물론 zip deploy 와 같은이 문제를 피하기 위해 다른 배포 방법을 시도 할 수도 있습니다 .
답변
GitHub와 같은 플레이 폼에서 프로젝트를 공유하지 않으면 특정 조언을 제공하기가 어렵습니다. 변수가 너무 많고 NuGET 패키지와 참조의 조합이 너무 많아 프로젝트가 충돌 할 수있는 방식으로 발생할 수 있습니다. 오류.
특히 v2 함수의 경우이 문제 또는 유사한 문제가 여러 번 발생했습니다. Functions의 가장 큰 요소 중 하나는 v1과 v2 간의 경쟁 개념입니다.
Visual Studio 게시 마법사를 사용하여 Azure에서 대상 리소스를 만들 때 잠시 동안 어려움을 겪고 있다면 더 큰 성공을 거두는 경향이 있습니다. 다른 방법이 없다면 개념 증명 으로이 프로세스를 따르는 것이 좋습니다.
이 조언은 VS2017과 2019에서 똑같이 잘 작동합니다.
- 동일한 솔루션으로 Visual Studio에서 새 기능 프로젝트를 작성하십시오.
- 원래 기능의 이름을 복제
- 함수를 새 Azure 리소스에 게시하고 게시 마법사를 사용하여이 리소스를 만듭니다.
- 게시가 성공한 경우 :
- 원래 프로젝트 코드를 새 프로젝트로 이동
- 가져 오려는 너겟 패키지의 버전에주의를 기울이십시오. 패키지와 그 종속성은 v2 호환이어야합니다.
- 출판 경우 NOT 성공
- Visual Studio를 최신 버전으로 업그레이드하십시오.
- Azure 도구도 최신으로 업그레이드해야합니다
일반적으로 Azure Functions의 일반적인 성공을 위해 :
- 닷넷 프레임 워크 프로젝트에 사용 v1의 경우, 또는 어떤 참조 프로젝트 나 NuGET 패키지는 닷넷 FX는 종속성이 있습니다. (따라서 .Net 4 + … 또는 .Net Core 가 아닌 것 )
이러한 종속성이 여러 프로젝트를 대상으로하는 경우에도 기능을 사용 하면 배포 중에 NuGET 종속성을 평가할 때 올바른 플랫폼을 올바르게 감지 할 수 없으므로 배포가 실패하는 경향이 있습니다.
- v2를 사용 ONLY 을 위해 닷넷 핵심 프로젝트, 당신의 참조는 단지 있는지 확인 닷넷 핵심
점진적으로 코드를 컴파일 및 게시하고 AzureDevOps 또는 GitHub 또는 기타 소스 코드 리포지토리를 사용하여 함수로 코드를 자주 체크인합니다. 함수 프로젝트의 초기 단계에서 종종 여러 개의 굴절 및 NuGET 패키지를 가져 오며 로컬에서는 작동하지만 배포 할 때는 작동하지 않는 것 같습니다.
- 소스 코드 저장소를 사용하면 새 패키지를 설치하기 전에 변경 사항을 커밋하고 패키지를 설치할 때 배포 할 수없는 코드 인 경우 롤백하기가 쉽습니다.
- 지저분 해 보이지만 NuGet 버전 관리로 인해 패키지를 설치하기 전에 상태로 돌아가서 해당 패키지를 제거하는 것만 큼 간단하지는 않지만 다른 패키지를 매우 쉽게 업그레이드했을 수 있습니다.이 변화하는 Azure 환경에서 많은 패키지 작성자가 .Net Framework와 .Net Core 간의 리소스를 관리하고 항상 잘 수행 한 것은 아니며 Azure Functions에서 충돌을 일으킬 수있는 일부 .Net Framework 요소를 유지하는 경우도 있습니다.
도움이 될만한 흥미로운 토론이 있습니다.
답변
해결책은 최신 SDK로 업데이트하는 것이 었습니다.