Azure Function이 잠시 동안 잘 실행 된 후 어셈블리를로드하지 못함

Bech

가끔은 함수가 유휴 상태가 될만큼 드물지만 자주 삽입되는 Blob 저장소를 수신하는 함수가 있습니다.

bin 폴더에 일부 사용자 지정 DLL을 포함하는 방식으로 설정되며 실제 함수 자체는 해당 어셈블리 중 하나에서 실행 메서드를 호출하는 것입니다. 이것은 잘 작동합니다. 대부분.

내 문제는 잠시 실행하면 다음 오류 메시지와 함께 사용자 지정 어셈블리를 갑자기로드하지 못하게된다는 것입니다.

Exception while executing function: Functions.EventHandlerFunctionMicrosoft.Azure.WebJobs.Host.FunctionInvocationException : Exception while executing function: Functions.EventHandlerFunction ---> System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation. ---> System.TypeLoadException : Could not load type 'MyAssembly.MyFunctions.EventHandlerFunction' from assembly 'MyAssembly.MyFunctions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.   at async Submission#0.Run(Stream blob,String name,TraceWriter log) at  : 19   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)   at Submission#0.Run(Stream blob,String name,TraceWriter log)    End of inner exception   at System.RuntimeMethodHandle.InvokeMethod(Object target,Object[] arguments,Signature sig,Boolean constructor)   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object[] parameters,Object[] arguments)   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object[] parameters,CultureInfo culture)   at async Microsoft.Azure.WebJobs.Script.Description.DotNetFunctionInvoker.InvokeCore(Object[] parameters,FunctionInvocationContext context)   at async Microsoft.Azure.WebJobs.Script.Description.FunctionInvokerBase.Invoke(Object[] parameters)   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`1.InvokeAsync[TReflected](Object[] arguments)   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.InvokeAsync(IFunctionInvoker invoker,Object[] invokeParameters,CancellationTokenSource timeoutTokenSource,CancellationTokenSource functionCancellationTokenSource,Boolean throwOnTimeout,TimeSpan timerInterval,IFunctionInstance instance)   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithWatchersAsync(IFunctionInstance instance,IReadOnlyDictionary`2 parameters,TraceWriter traceWriter,CancellationToken…

stacktrace에서 알 수 있듯이 내 어셈블리 (MyAssembly.MyFunctions로 이름이 바뀜)가 갑자기로드되지 않습니다. 자체적으로 복구 할 수 있지만 다운 타임과 "삭제 된"Blob은 내 Blob의 약 1/5 정도입니다.

이것은 멍청한 것 같습니다. 해당 예외에 대응하고 blob을 다시 삽입하여이 문제를 완화 할 수 있다는 것을 알고 있지만 이는 리소스 낭비처럼 보입니다.

내 생각 엔 azure 함수 런타임이 유휴 상태 인 후 dll을로드하지 못하는 경우가 있습니다. 누구든지 이것을 경험하고 그것을 해결할 방법을 찾았습니까?

업데이트 : 내 기능은 다음과 같습니다.

    #r "MyAssembly.MyFunctions.dll"

    public static async Task Run(Stream blob, string name, TraceWriter log)
    {
        try {
            await new EventHandlerFunction().Run(name);
        } catch (Exception e) {
            log.Error(e.Message);
        }
    }
Bech

이것에 걸려 넘어지는 사람에게 :

대답은 동일한 어셈블리의 여러 버전이 동일한 함수 앱의 다른 bin 폴더 (다른 함수)에 있다는 것입니다. 분명히 어셈블리를로드 할 때 때때로 다른 버전을 찾을 수 있으며 이로 인해 언급 된 오류가 발생합니다.

두 가지 솔루션이 있습니다.

  1. 가능하면 VS2017 도구를 사용하여 함수를 빌드, 테스트 및 게시하십시오. 이렇게하면 모든 어셈블리가 동일한 bin 폴더에 저장되고 전체 개발 및 게시 프로세스는 Webjob의 프로세스와 유사합니다.
  2. 또는 모든 어셈블리를 공유 폴더에 넣고 각 기능에 대해 특정 bin 폴더가 아닌 해당 폴더를 참조하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

쿼리를 실행하는 동안 잘못된 열 이름

분류에서Dev

Angular Nativescript 라우터가 몇 초 동안 로그인 후 잘못된 페이지를 표시 함

분류에서Dev

열 이름이 잘못된 쿼리를 실행하는 동안 오류 없음

분류에서Dev

CQL 쿼리 문을 실행하는 동안 오류 경고 "잘못된 문자열"이 표시됨

분류에서Dev

Azure 함수 V2의 메시지 연기 : 제공된 잠금이 잘못되었습니다.

분류에서Dev

tkinter python에서 실행 ( "이후"스크립트)하는 동안 잘못된 명령 이름 오류를 처리하는 방법

분류에서Dev

ffmpeg-안드로이드 ndk 빌드 어셈블러 메시지 잘못된 명령어

분류에서Dev

잘못된 사용자 오류로 인해 패키지를 설치하는 동안 Dpkg 명령이 실패 함

분류에서Dev

xpath를 실행하는 동안 잘못된 토큰

분류에서Dev

Meteor 이벤트가 잘못된 메서드를 실행 함

분류에서Dev

.NET Core 3.1에서 관리되는 C ++ / CLI 어셈블리를 실행할 때 잘못된 이미지 형식

분류에서Dev

실행 파일을 char 벡터로로드 한 후 잘못된 데이터

분류에서Dev

SYCL 코드를 실행할 때 잘못된 결과. 루프를 패럴 라이즈하려고하는 동안

분류에서Dev

PHPMailer가 잠시 동안 잘 작동 한 후 : SMTP 오류 : 서버에 연결하지 못했습니다 : (10060) 오류 : SMTP connect () 실패

분류에서Dev

Oracle 데이터베이스에서 AT TIME ZONE 함수를 호출하는 동안 잘못된 시간대 지역

분류에서Dev

sudo 및 화면 잠금에 대한 잘못된 비밀번호이지만 재부팅 직후 로그인하는 동안 수정 됨

분류에서Dev

파이썬 스크립트를 실행하는 동안 잘못된 인터프리터 오류

분류에서Dev

파이썬 스크립트를 실행하는 동안 잘못된 인터프리터 오류

분류에서Dev

오랫동안 실행 된 프로세스 이후의 실행 시간 및 리소스

분류에서Dev

BenchmarkDotNet 실행시 "잘못된 어셈블리 바인딩 리디렉션"

분류에서Dev

토템이 잠시 실행 된 후 notify-osd가 작동을 중지합니다.

분류에서Dev

토템이 잠시 실행 된 후 notify-osd가 작동을 멈 춥니 다.

분류에서Dev

배포 잠시 후 잘못된 날짜와 시간을 제공하여 SimpleDateFormat

분류에서Dev

Fresco 라이브러리를 사용하는 동안 잘못된 이미지를 표시하는 어댑터

분류에서Dev

Linux에서 VirtualBox를 실행하는 동안 "잘못된 인수 설정"이 나타납니다.

분류에서Dev

AWS Lambda 함수에서 aws S3 cli 명령을 실행하는 동안 잘못된 토큰

분류에서Dev

AfterSetExtremes 이후 함수에 대한 데이터를 동적으로 설정 한 후 잘못된 플래그 배열

분류에서Dev

앱이 즉시 충돌 함 : 실행 파일이 잘못된 권한으로 서명되었습니다.

분류에서Dev

Android 에뮬레이터 LibGDX에서 앱을 실행하는 동안 잘못된 해상도

Related 관련 기사

  1. 1

    쿼리를 실행하는 동안 잘못된 열 이름

  2. 2

    Angular Nativescript 라우터가 몇 초 동안 로그인 후 잘못된 페이지를 표시 함

  3. 3

    열 이름이 잘못된 쿼리를 실행하는 동안 오류 없음

  4. 4

    CQL 쿼리 문을 실행하는 동안 오류 경고 "잘못된 문자열"이 표시됨

  5. 5

    Azure 함수 V2의 메시지 연기 : 제공된 잠금이 잘못되었습니다.

  6. 6

    tkinter python에서 실행 ( "이후"스크립트)하는 동안 잘못된 명령 이름 오류를 처리하는 방법

  7. 7

    ffmpeg-안드로이드 ndk 빌드 어셈블러 메시지 잘못된 명령어

  8. 8

    잘못된 사용자 오류로 인해 패키지를 설치하는 동안 Dpkg 명령이 실패 함

  9. 9

    xpath를 실행하는 동안 잘못된 토큰

  10. 10

    Meteor 이벤트가 잘못된 메서드를 실행 함

  11. 11

    .NET Core 3.1에서 관리되는 C ++ / CLI 어셈블리를 실행할 때 잘못된 이미지 형식

  12. 12

    실행 파일을 char 벡터로로드 한 후 잘못된 데이터

  13. 13

    SYCL 코드를 실행할 때 잘못된 결과. 루프를 패럴 라이즈하려고하는 동안

  14. 14

    PHPMailer가 잠시 동안 잘 작동 한 후 : SMTP 오류 : 서버에 연결하지 못했습니다 : (10060) 오류 : SMTP connect () 실패

  15. 15

    Oracle 데이터베이스에서 AT TIME ZONE 함수를 호출하는 동안 잘못된 시간대 지역

  16. 16

    sudo 및 화면 잠금에 대한 잘못된 비밀번호이지만 재부팅 직후 로그인하는 동안 수정 됨

  17. 17

    파이썬 스크립트를 실행하는 동안 잘못된 인터프리터 오류

  18. 18

    파이썬 스크립트를 실행하는 동안 잘못된 인터프리터 오류

  19. 19

    오랫동안 실행 된 프로세스 이후의 실행 시간 및 리소스

  20. 20

    BenchmarkDotNet 실행시 "잘못된 어셈블리 바인딩 리디렉션"

  21. 21

    토템이 잠시 실행 된 후 notify-osd가 작동을 중지합니다.

  22. 22

    토템이 잠시 실행 된 후 notify-osd가 작동을 멈 춥니 다.

  23. 23

    배포 잠시 후 잘못된 날짜와 시간을 제공하여 SimpleDateFormat

  24. 24

    Fresco 라이브러리를 사용하는 동안 잘못된 이미지를 표시하는 어댑터

  25. 25

    Linux에서 VirtualBox를 실행하는 동안 "잘못된 인수 설정"이 나타납니다.

  26. 26

    AWS Lambda 함수에서 aws S3 cli 명령을 실행하는 동안 잘못된 토큰

  27. 27

    AfterSetExtremes 이후 함수에 대한 데이터를 동적으로 설정 한 후 잘못된 플래그 배열

  28. 28

    앱이 즉시 충돌 함 : 실행 파일이 잘못된 권한으로 서명되었습니다.

  29. 29

    Android 에뮬레이터 LibGDX에서 앱을 실행하는 동안 잘못된 해상도

뜨겁다태그

보관