Мои Azure функции просто сбои (прежний: не удается найти источник сбоя для моего не отвечающего приложения функции) - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть приложение-функция, которое иногда выходит из строя (это происходило 4 раза за 1 месяц, 2 из которых были за последние 3 дня).

Я пытался исследовать, но я не уверен, где искать .

Это то, что я вижу для функции

enter image description here

enter image description here

и нет сбоев:

enter image description here

Похоже, все работает. Затем я посмотрел на свои функции: недоступные функции enter image description here

и вызов функции: enter image description here

И этой ошибки нет тоже не очень хорошо выглядит:

enter image description here

Последнее, что не очень хорошо выглядит, это из хранилища:

enter image description here

и этот

enter image description here

Так что я нашел много ошибок (в этом на моем хранилище, но я не могу понять, откуда они берутся. На графике нажимать нечего.

Я нажал на каждый монитор и проверку работоспособности, но единственные ошибки, которые я обнаружил, находятся в хранилище, но я не могу понять, что не так.

Я не знаю, понимаю ли я, что приложение-функция останавливается, когда возникает ошибка в хранилище, с которым оно связывается. Но на первый взгляд приложение функции отображает все зеленые индикаторы, только после того, как я щелкну в подстраницах приложения функции, затем, после нескольких щелчков мыши, он поймет, что это ошибка.


РЕДАКТИРОВАТЬ: то же самое Сегодня, 10 марта, что-то произошло

Теперь я обнаружил явную ошибку. Похоже, своего рода исключение DI. Странно то, что он работает в течение 22 дней (звонят каждые 5 минут, так 288 раз в день), а затем бум останавливается. И не один раз, но он падает, хост останавливается, и вся функция просто останавливается.

 The function runtime is unable to start. System.Private.CoreLib: Assembly with same name is already loaded.


 System.IO.FileLoadException : Assembly with same name is already loaded

  at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext,String ilPath,String niPath,ObjectHandleOnStack retAssembly)

  at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)

  at Microsoft.Azure.WebJobs.Script.DependencyInjection.ScriptStartupTypeLocator.<>c__DisplayClass9_1.b__0(AssemblyName assemblyName) at C:\azure-webjobs-sdk-script\src\WebJobs.Script\DependencyInjection\ScriptStartupTypeLocator.cs : 116

  at System.TypeNameParser.ResolveAssembly(String asmName,Func`2 assemblyResolver,Boolean throwOnError,StackCrawlMark& stackMark)

  at System.TypeNameParser.ConstructType(Func`2 assemblyResolver,Func`4 typeResolver,Boolean throwOnError,Boolean ignoreCase,StackCrawlMark& stackMark)

  at System.TypeNameParser.GetType(String typeName,Func`2 assemblyResolver,Func`4 typeResolver,Boolean throwOnError,Boolean ignoreCase,StackCrawlMark& stackMark)

  at System.Type.GetType(String typeName,Func`2 assemblyResolver,Func`4 typeResolver,Boolean throwOnError,Boolean ignoreCase)

  at async Microsoft.Azure.WebJobs.Script.DependencyInjection.ScriptStartupTypeLocator.GetExtensionsStartupTypesAsync() at C:\azure-webjobs-sdk-script\src\WebJobs.Script\DependencyInjection\ScriptStartupTypeLocator.cs : 113

  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

  at Microsoft.Azure.WebJobs.Script.DependencyInjection.ScriptStartupTypeLocator.GetStartupTypes() at C:\azure-webjobs-sdk-script\src\WebJobs.Script\DependencyInjection\ScriptStartupTypeLocator.cs : 55

  at Microsoft.Azure.WebJobs.WebJobsBuilderExtensions.UseExternalStartup(IWebJobsBuilder builder,IWebJobsStartupTypeLocator startupTypeLocator,ILoggerFactory loggerFactory) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Hosting\WebJobsBuilderExtensions.cs : 167

  at Microsoft.Azure.WebJobs.Script.ScriptHostBuilderExtensions.UseScriptExternalStartup(IWebJobsBuilder builder,ScriptApplicationHostOptions applicationHostOptions,ILoggerFactory loggerFactory,IExtensionBundleManager extensionBundleManager,IMetricsLogger metricsLogger) at C:\azure-webjobs-sdk-script\src\WebJobs.Script\ScriptHostBuilderExtensions.cs : 237

  at Microsoft.Azure.WebJobs.Script.ScriptHostBuilderExtensions.<>c__DisplayClass3_0.b__0(HostBuilderContext context,IWebJobsBuilder webJobsBuilder) at C:\azure-webjobs-sdk-script\src\WebJobs.Script\ScriptHostBuilderExtensions.cs : 114

  at Microsoft.Extensions.Hosting.WebJobsHostBuilderExtensions.<>c__DisplayClass4_0.b__1(HostBuilderContext context,IServiceCollection services) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Hosting\WebJobsHostBuilderExtensions.cs : 47

  at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()

  at Microsoft.Extensions.Hosting.HostBuilder.Build()

  at Microsoft.Azure.WebJobs.Script.WebHost.DefaultScriptHostBuilder.BuildHost(Boolean skipHostStartup,Boolean skipHostConfigurationParsing) at C:\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\DefaultScriptHostBuilder.cs : 59

  at async Microsoft.Azure.WebJobs.Script.WebHost.WebJobsScriptHostService.UnsynchronizedStartHostAsync(ScriptHostStartupOperation activeOperation,Int32 attemptCount,JobHostStartupMode startupMode) at C:\azure-webjobs-sdk-script\src\WebJobs.Script.WebHost\WebJobsScriptHostService.cs : 234

1 Ответ

0 голосов
/ 16 марта 2020

Я получаю то же самое: «Не удается запустить среду выполнения функции. System.Private.CoreLib: сборка с таким именем уже загружена». ошибка иногда. У меня было это на двух отдельных функциях в выходные.

Я вижу эту ошибку в розовом поле ошибки в пользовательском интерфейсе. Вы можете найти трассировку стека для этого в разделе Функции платформы -> Диагностика и решение проблем -> Доступность и отчетность -> Функция приложения не работает или сообщает об ошибках.

Видимо, причина, по которой я получаю "Сборка с таким именем уже загружена "редкое состояние, вызванное оптимизацией при холодном запуске. Параметр WEBSITE_USE_PLACEHOLDER указывает платформе запустить ваш код на рабочем месте с уже загруженными функциями времени выполнения функций. Это сокращает продолжительность холодного запуска. Если не указано, по умолчанию используется WEBSITE_USE_PLACEHOLDER = 1.

Настройка WEBSITE_USE_PLACEHOLDER = 0 отключает это.

...