Не удается разрешить конечную точку для актера с помощью ActorServiceProxy - PullRequest
0 голосов
/ 25 октября 2018

У меня есть актер в моем локальном кластере ServiceFabric, я пытаюсь удалить его, когда работа завершена из моей службы без сохранения состояния.Я использую RemotingListenerVersion.V2.

  var actor = ActorServiceProxy.Create(new Uri($"{_applicationName}/{_actorServiceName}"), actorId);
              await actor.DeleteActorAsync(actorId, CancellationToken.None);

, затем получаю исключение:

{"NamedEndpoint 'V2Listener' не найден в адресе '{\" Конечные точки \ ": {\ "\": \ "my-localhost.pl: 30004 + ea7448c4-2a32-4c48-8ac9-cb23b6bd6269-131849397597858002-a68d72c7-2387-4390-8170-49b38127c0d1 \"}} 'для раздела' xxxx-xxx8ac9-cb23b6bd6269 '"}

мой манифест актера:

<StatefulServiceType ServiceTypeName="ActorServiceActorServiceType" HasPersistedState="true">
      <Extensions>
        <Extension Name="__GeneratedServiceType__" GeneratedId="c0c20ebd-xxx-xxx-xxx-ebaa99dce8ed|Persisted">
          <GeneratedNames xmlns="http://schemas.microsoft.com/2015/03/fabact-no-schema">
            <DefaultService Name="xxxActorService" />
            <ReplicatorEndpoint Name="xxxxActorServiceActorServiceReplicatorEndpoint" />
            <ReplicatorConfigSection Name="xxxxActorServiceReplicatorConfig" />
            <ReplicatorSecurityConfigSection Name="xxxxxActorServiceActorServiceReplicatorSecurityConfig" />
            <StoreConfigSection Name="xxxxxActorServiceActorServiceLocalStoreConfig" />
            <ServiceEndpointV2 Name="xxxxxActorServiceActorServiceEndpointV2" />
            <ServiceEndpointV2 Name="ServiceEndpointV2" />
            <Endpoint Name="ServiceEndpointV2" />
          </GeneratedNames>
        </Extension>
      </Extensions>
    </StatefulServiceType>
    <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ExeHost>
        <Program>xxxxxxx.exe</Program>
      </ExeHost>
    </EntryPoint>
  </CodePackage>
  <ConfigPackage Name="Config" Version="1.0.0" />
  <Resources>
    <Endpoints>
      <Endpoint Name="xxxxxxxEndpointV2" />
      <Endpoint Name="xxxxxxxEndpoint" />
      <Endpoint Name="ServiceEndpointV2"   />
    </Endpoints>
  </Resources>
  <!-- The content will be generated during build -->
</ServiceManifest>

Что я делаю не так?Почему имя конечной точки актера пустое (значение верное)?

1 Ответ

0 голосов
/ 25 октября 2018

Я проверил метод CreateServiceInstanceListeners

protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
        {
            return new[]
            {
                new ServiceInstanceListener(
                    context =>
                    new FabricTransportServiceRemotingListener(
                        context,
                        serviceRemotingMessageHandler: new MiddlewareServiceRemotingMessageDispatcher(
                            context,
                            this,
                            middlewareAction: MiddlewareAction,
                            serviceRemotingMessageBodyFactory: new JsonMessageFactory()),
                        serializationProvider: new ServiceRemotingJsonSerializationProvider()))
            };
    }

Я заметил, что не могу установить параметр "name".Когда я его установил, все идет хорошо.Решаемые.

...