I am having a problem deploying a microservice application to a remote Service Fabric cluster in Azure.
The application consists of 5 services, 4 of which manage to start and their state is displayed as Ready
. However one fails with following error (state varies between InBuild
and Error
on all nodes):
'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
A few notes:
- All the services use almost exactly the same host initialization (ports vary)
- The application is configured to use HTTPS only
- The application in written using .NET Core 2.2
- The current Service Fabric version is 6.4.637.9590
- The host's operating system is Windows Server (probably 2012)
- On the local cluster, it works just fine
- Using .NET Core self-hosting, everything works
What might be the cause of it?
How to debug such errors?
Is the source code of Service Fabric available somewhere to see code that fails?
If you need any additional information just ask :)