tutorial azure-service-fabric

azure service fabric - tutorial - La instancia primaria o sin estado para la partición tiene una dirección no válida



service fabric tutorial (3)

Creé un servicio con estado con la partición lista para usar:

<StatefulService ServiceTypeName="ExamplesServiceType" TargetReplicaSetSize="[ExamplesService_TargetReplicaSetSize]" MinReplicaSetSize="[ExamplesService_MinReplicaSetSize]"> <UniformInt64Partition PartitionCount="[ExamplesService_PartitionCount]" LowKey="-9223372036854775808" HighKey="9223372036854775807" /> </StatefulService>

El manifiesto de servicio establece los parámetros en (fuera de la caja también):

<Parameter Name="ExampleService_PartitionCount" Value="1" /> <Parameter Name="ExampleService_MinReplicaSetSize" Value="2" /> <Parameter Name="ExampleService_TargetReplicaSetSize" Value="3" /> <Parameter Name="WebService_InstanceCount" Value="1" />

Ahora quiero llamar a mi servicio con estado desde mi servicio sin estado en el mismo grupo:

ServiceUriBuilder builder = new ServiceUriBuilder(ExampleServiceName); var service = ServiceProxy.Create<IExampleService>(builder.ToUri(),new ServicePartitionKey(1)); return service.MyCallAsync(id);

Estoy recibiendo el siguiente error:

La instancia primaria o sin estado para la partición ''a67f7afa-3370-4e6f-ae7c-15188004bfa1'' tiene una dirección no válida, esto significa que la dirección de la derecha de la réplica / instancia no está registrada en el sistema

El servicio de estado Estoy intentando acceder a los registros de eventos y los registros llevan "partitionId": "a67f7afa-3370-4e6f-ae7c-15188004bfa1".

¿Qué me estoy perdiendo?


En caso de que alguien más venga aquí preguntándose qué hacer por los servicios sin estado, esto funciona para mí:

protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners() { return new[] { new ServiceInstanceListener(context => this.CreateServiceRemotingListener(context)) }; }



Para aquellos de ustedes que usan Microsoft.ServiceFabric.Services.Remoting versión 3.3.638, encontré que no había un método de extensión llamado CreateServiceInstanceListeners() . Solo encontré CreateServiceRemotingInstanceListeners() y CreateServiceRemotingReplicaListeners() en Microsoft.ServiceFabric.Services.Remoting.Runtime.ServiceRemotingExtensions .

Este código compilado para mí:

protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners() { return this.CreateServiceRemotingInstanceListeners(); }