programing

Visual Studio에서 zure 함수를 게시하는 동안 오류 발생

linuxpc 2023. 5. 21. 11:00
반응형

Visual Studio에서 zure 함수를 게시하는 동안 오류 발생

Visual Studio를 사용하여 기능을 게시하려고 하면 다음 오류 메시지가 표시됩니다. 이 문제를 해결하는 방법이 있습니까?

System.Aggregate예외:하나 이상의 오류가 발생했습니다. ---> 시스템예외: 게시에 오류가 발생했습니다.오류의 원인을 확인할 수 없습니다.자세한 내용은 시스템에서 출력 로그를 확인하십시오. --- 내부 예외 스택 추적의 끝 ---스레드화.작업. 작업.시스템에서 ThrowIfExceptional(Boolean include TaskCancelled Exceptions)을 선택합니다.스레드화.작업. 작업.대기(Int32밀리초)시간 초과, 취소토큰 취소토큰)을 사용합니다.게시합니다.틀.모델.기본 게시 단계.<>c__DisplayClass26_0.b_2()가 시스템에 있습니다.스레드화.태스크. 태스크 1.시스템에서 내부 호출().스레드화.작업. 작업.Execute() --- 시스템에서 예외가 발생한 이전 위치의 스택 추적 끝.런타임.컴파일러 서비스.작업 대기자입니다.시스템에서 성공하지 못한 경우(작업 작업)를 던집니다.런타임.컴파일러 서비스.작업 대기자입니다.Microsoft에서 NonSuccessAndDebuggerNotification(작업 작업)을 처리합니다.게시합니다.틀.Model.DefaultPublishStep.d_23.MoveNext() --- 시스템에서 예외가 발생한 이전 위치의 스택 추적 끝.런타임.컴파일러 서비스.작업 대기자입니다.시스템에서 성공하지 못한 경우(작업 작업)를 던집니다.런타임.컴파일러 서비스.작업 대기자입니다.Microsoft에서 NonSuccessAndDebuggerNotification(작업 작업)을 처리합니다.게시합니다.틀.모델 보기.프로파일 선택기모델 보기.d__213.MoveNext() ---> (내부 예외 #0) 시스템.예외: 게시에 오류가 발생했습니다.오류의 원인을 확인할 수 없습니다.자세한 내용은 출력 로그를 확인하십시오. <---

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

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

해볼수있습니까?

Azure Portal의 Azure Functions Application Settings에서 WEBITE_RUN_FROM_PACKage 설정을 완전히 제거합니다.

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

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

이것들 중 어느 것도 나에게 맞지 않기 때문에 나는 해결책을 찾았습니다.좀 이상하니까, 조금만 참아주세요.

  1. zure에 함수 게시
  2. 실패할 때까지 기다립니다.
  3. Azure 포털 / 모든 리소스로 이동
  4. 실패한 게시된 기능 앱 찾기
  5. "기능"을 클릭합니다.함수 내부

여기에 이미지 설명 입력

  1. 새로 고침 클릭
  2. 다시 게시...이번에는 효과가 있습니다.

바로 그거야..

저는 같은 이상한 문제를 경험했습니다 - 그것은 제 코드의 오류로 인해 발생했습니다 -

나는 가지고 있었습니다#if DEBUG #else #if컴퓨터에서 디버그가 작동했지만 게시(릴리스 프로파일 포함)에 실패했습니다.

출력 탭을 클릭하면 실제 문제가 표시됩니다.

위의 어떤 것도 저에게 효과가 없었습니다.그래서 게시 프로필을 다시 다운로드하여 VS로 가져왔더니 작동했습니다.

이상하지만, 위의 것들 중 하나도 당신에게 맞지 않을 경우를 대비해서요.시도해 볼 만합니다.

게시 프로필을 삭제하고 다시 설치했더니 작동했습니다.

저도 같은 문제가 있었습니다.

저도 같은 문제가 있었습니다.

하지만 실패 로그는 없었다고 합니다.

Web App was published successfully https://xxxxxxxxx/
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========

저는 Visual Studio 2022를 사용하고 있습니다. 이를 업데이트하고 프로젝트를 다시 빌드해야 했습니다. 5~6번 정도 시도했다가 다시 시작한 후에 성공했습니다.

서버 속도가 느리거나 인터넷에 연결되어 있을 수 있습니다.

@Sajeetharan이 제안한 대로 패키지 배포를 제거하는 작업이 수행되기도 했지만 항상 그런 것은 아니었습니다.

먼저 포털에서 호스트를 중지해야 합니다.그런 다음 VS에서 게시하면 효과가 있었습니다.마지막으로 호스트를 다시 시작합니다.

이제 수동으로 다시 시작해야 하는 이유를 알 수 없습니다. 아마도 내구성 작업이 실행되어 자동 다시 시작을 차단하고 있었을 것입니다.

Visual Studio 2022를 사용하는 경우

Github에 문서화된 버그가 있습니다.

여기에 이미지 설명 입력

해결책

다음으로 이동:

C:\Users\{{USER}}\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator\{{LATEST VERSION}}\build

파일 편집: Microsoft.애저, 웹잡스Script.ExtensionsMetadataGenerator.targets

다음에 대한 내부 파일 검색: _GenerateFunctions확장 메타데이터 게시 게시

<Target Name="_GenerateFunctionsExtensionsMetadataPostPublish" AfterTargets="Publish"> <GenerateFunctionsExtensionsMetadata SourcePath="$(PublishDir)bin" OutputPath="$(PublishDir)bin"/> </Target>

다음으로 변경: - $(PublishDir) 뒤에 있는 "빈" 제거

<Target Name="_GenerateFunctionsExtensionsMetadataPostPublish" AfterTargets="Publish"> <GenerateFunctionsExtensionsMetadata SourcePath="$(PublishDir)" OutputPath="$(PublishDir)"/> </Target>

해결책은 최신 SDK로 업데이트하는 것이었습니다.

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

특히 v2 Functions에서는 이 문제나 비슷한 문제를 여러 번 경험했습니다.기능의 가장 큰 요인 중 하나는 v1과 v2의 경쟁 개념입니다.

Visual Studio 게시 마법사를 사용하여 Azure에서 대상 리소스를 생성하면 성공률이 더 높아집니다. 한동안 이 문제로 어려움을 겪는다면 다음 프로세스를 수행하여 개념 증명을 수행하는 것이 좋습니다.

이 조언은 VS2017과 2019에서 동일하게 효과적입니다.

  1. 비주얼 스튜디오에서 동일한 솔루션으로 새 기능 프로젝트를 만듭니다.
    • 원래 함수의 이름을 복제합니다.
  2. Azure 리소스에 함수를 게시하고 게시 마법사를 사용하여 이 리소스를 만듭니다.
  3. 게시가 성공한 경우:
    • 원래 프로젝트 코드를 새 프로젝트로 이동
    • 가져올 nugget 패키지의 버전을 주의 깊게 살펴보십시오. 패키지 및 해당 종속성은 v2 규정을 준수해야 합니다.
  4. 게시가 성공하지 못한 경우
    • Visual Studio를 최신 버전으로 업그레이드하십시오.
    • Azure Tools도 최신 버전으로 업그레이드해야 합니다.

일반적으로 Azure 함수를 사용하여 일반적으로 성공하려면 다음을 수행합니다.

  1. 에 v1을 사용합니다.NetFramework 프로젝트 또는 참조 프로젝트 또는 NuGET 패키지가 있는 경우.NetFx 종속성.(그래서 .Net 4+...또는 그렇지 않은 모든 것.Net Core.)

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

  2. 대해서 v2를 사용합니다.NetCore 프로젝트는 참조도 마찬가지입니다.넷코어

코드를 점진적으로 컴파일하고 게시하며, 또한 AzureDevOps 또는 GitHub 또는 다른 소스 코드 저장소를 사용하여 자주 함수로 코드를 체크인합니다.함수 프로젝트의 초기 단계에서 여러 참조 및 NuGET 패키지를 가져오는 경우가 많으며, 배포할 때 로컬로 작동하는 것처럼 보이지만 실제로는 작동하지 않습니다.

  • 소스 코드 repo를 사용하면 새 패키지를 설치하기 전에 변경 내용을 쉽게 커밋하고 패키지를 설치하면 배포할 수 없는 코드가 발생하는 경우 롤백할 수 있습니다.
  • 지저분해 보이지만 NuGet 버전 관리로 인해 패키지를 설치하기 전 상태로 돌아가서 패키지를 제거하는 것만큼 간단하지 않을 경우 다른 패키지를 매우 쉽게 업그레이드할 수 있습니다. 이러한 변화하는 Azure 환경에서는 많은 패키지 작성자가 사이에서 리소스를 업그레이드하기로 선택했습니다.NetFramework 및 .Net Core, 그리고 그들이 항상 그것을 잘 해낸 것은 아니며, 때때로 그것을 유지합니다.Azure 함수에서 충돌을 일으키는 넷 프레임워크 요소입니다.

다음과 같은 도움이 될 수 있는 흥미로운 토론이 있습니다.

기본 제한 시간은 100초입니다.100초 후 게시 실패.저는 블럽을 업로드할 때 제 코드에 동일한 문제가 있었고 이것이 제가 5분으로 고치는 방법입니다.Visual Studio와 동일한 코드로 수정합니다.

_client.Timeout = TimeSpan.FromMinutes(5);
CancellationTokenSource source = new CancellationTokenSource(TimeSpan.FromMinutes(5));
CancellationToken token = source.Token;
HttpResponseMessage responseMessage = await _client.PostAsync(url, content, token);

WEBITE_RUN_FROM_PACKage를 제거하는 것은 대부분의 경우 제게 도움이 됩니다.하지만 가끔, 그것은 작동하지 않습니다.다음은 출판하기 전에 확인해야 할 몇 가지 사항입니다.

  1. Azure CLI 창이 열려 있으면 안 됩니다.
  2. 파일--> 계정 설정으로 이동합니다.로그인했는지 확인합니다.
  3. 관리자 모드에서 Visual Studio를 사용합니다.
  4. 게시 프로파일을 삭제하고 다시 만듭니다.

서비스 종속성 목록에 노란색 플래그가 있는 애플리케이션 통찰력이 있습니다.제가 이 도구를 사용하지 않기 때문에, 저는 그것을 제거했고 그것은 제 게시를 고쳤습니다.

저도 같은 문제를 겪고 있었고, 위의 모든 해결책을 시도했지만 효과가 없었습니다.제 솔루션은 VS를 제 Azure 계정에 서명하는 것이었습니다.Cloud Explorer를 사용하는 경우 자격 증명을 다시 입력하는 것이 아니라 이미 로그인했는지 확인하십시오.

이 벌레가 제 뇌를 너무 오랫동안 망가뜨렸어요.새로운 앱 서비스에 게시하고 로컬로 게시하고, 새 게시 프로필을 생성하는 등 모든 방법을 시도했지만 소용이 없었습니다.어떤 이유로 컴퓨터가 어떤 기능을 위해 버그가 발생하고 저에게 유일한 해결책은 컴퓨터를 교체하는 것이었습니다.

하지만 해결책을 찾았어요이는 로컬 비주얼 스튜디오 설정 및 C에서 이름을 삭제/변경하는 것과 관련이 있는 것으로 보입니다.\Users{UserName}\AppData\Local\Microsoft\VisualStudio 17.0 또는 16.0을 재설정하고 시각적 스튜디오 설정을 재설정하면 해당 컴퓨터의 버그를 해제할 수 있습니다.

Visual Studio IDE 설정이 포함되어 있으므로 폴더 이름을 변경하는 것이 폴더 이름을 변경하는 것이 좋습니다.

저는 이 메시지를 받았을 때 Azure의 코드가 잘 업데이트되었습니다.VS가 웹에서 신호를 수신하지 않는 경우 일부 시간 초과 문제가 발생할 수 있습니다.

제가 이 오류를 범한 이유는 Visual Studio 2019에서 Azure 구독을 잃었기 때문입니다.서버 탐색기에서 구독을 재설정하고 새 토큰을 획득해야 했습니다.

저는 오늘 이 오류를 받았습니다.어쨌든 같은 메시지입니다.저의 경우 게시 대상이 더 이상 존재하지 않는 이전 인스턴스로 변경되었습니다.이 값은 비주얼 스튜디오의 게시 탭 상단에 있는 드롭다운 목록에서 설정됩니다.게시 단추의 왼쪽에 있습니다.

최신 .NET Core(5.0)를 설치하고 프로젝트를 대상 .NET Core 5.0으로 업그레이드했습니다.프로젝트를 게시할 때 이 오류가 발생했습니다.게시 창에서 'Target Framework'를 'net5.0'으로 변경하는 것을 잊었습니다.

속성:

게시:

언급URL : https://stackoverflow.com/questions/59205875/error-when-trying-to-publish-an-azure-function-from-visual-studio

반응형