У меня проблема с развертыванием приложения микросервиса в удаленном кластере Service Fabric в Azure.
Приложение состоит из 5 служб, 4 из которых удается запустить, и их состояние отображается как Ready
.Однако происходит сбой со следующей ошибкой (состояние изменяется между InBuild
и Error
на всех узлах):
'System.RA' reported Warning for property 'ReplicaOpenStatus'.
Replica had multiple failures during open on _nt1bm_5. API call:
IStatelessServiceInstance.Open(); Error =
System.Resources.MissingManifestResourceException (-2146233038)
Could not find any resources appropriate for the specified culture or the
neutral culture. Make sure
"Microsoft.ServiceFabric.Services.Communication.AspNetCore.SR.resources" was
correctly embedded or linked into assembly
"Microsoft.ServiceFabric.AspNetCore" at compile time, or that all the
satellite assemblies required are loadable and fully signed.
at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing(String fileName)
at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackCrawlMark& stackMark)
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture, Boolean createIfNotExists, Boolean tryParents, StackCrawlMark& stackMark)
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
at Microsoft.ServiceFabric.Services.Communication.AspNetCore.AspNetCoreCommunicationListener.GetEndpointResourceDescription(String endpointName)
at Microsoft.ServiceFabric.Services.Communication.AspNetCore.KestrelCommunicationListener.GetListenerUrl()
at Microsoft.ServiceFabric.Services.Communication.AspNetCore.AspNetCoreCommunicationListener.OpenAsync(CancellationToken cancellationToken)
at Microsoft.ServiceFabric.Services.Runtime.StatelessServiceInstanceAdapter.OpenCommunicationListenersAsync(CancellationToken cancellationToken)
at Microsoft.ServiceFabric.Services.Runtime.StatelessServiceInstanceAdapter.System.Fabric.IStatelessServiceInstance.OpenAsync(IStatelessServicePartition partition, CancellationToken cancellationToken)
For more information see: https://aka.ms/sfhealth
Несколько замечаний:
- Все службы используют почти точноодна и та же инициализация хоста (порты различаются)
- Приложение настроено на использование только HTTPS
- Приложение написано с использованием .NET Core 2.2
- Текущая версия Service Fabric - 6.4.637.9590
- Операционная система хоста - Windows Server (вероятно, 2012)
- В локальном кластере он работает просто отлично
- При использовании хостинга .NET Core все работает
В чем может быть причина этого?
Как отлаживать такие ошибки?
Доступен ли где-нибудь исходный код Service Fabric для просмотра кода, который не работает?
Если вам нужна дополнительная информация, просто спросите:)