Azure service fabric 无法在CreateServiceInstanceListeners中使用多个ServiceInstanceListener对象

Azure service fabric 无法在CreateServiceInstanceListeners中使用多个ServiceInstanceListener对象,azure-service-fabric,Azure Service Fabric,我创建了一个ServiceFabric应用程序,它返回多个对象。服务侦听器已打开,但几乎立即中止。然后再次打开侦听器(不经过CreateServiceInstanceListeners,中止它们 当我只使用一个服务侦听器时,一切正常。返回的服务实例侦听器将添加到ServiceListenerInstanceCollection([code][1]),如果集合中已经有同名的服务侦听器实例,则此操作将失败 ServiceInstanceListener构造函数具有以下实现: public Servi

我创建了一个ServiceFabric应用程序,它返回多个对象。服务侦听器已打开,但几乎立即中止。然后再次打开侦听器(不经过
CreateServiceInstanceListeners
,中止它们


当我只使用一个服务侦听器时,一切正常。

返回的服务实例侦听器将添加到
ServiceListenerInstanceCollection
([code][1]),如果集合中已经有同名的服务侦听器实例,则此操作将失败

ServiceInstanceListener构造函数具有以下实现:

public ServiceInstanceListener(
   Func<StatelessServiceContext, ICommunicationListener> createCommunicationListener,
   string name = "")
{
  this.CreateCommunicationListener = createCommunicationListener;
  this.Name = name;
}
公共服务InstanceListener( Func createCommunicationListener, 字符串名称=”) { this.CreateCommunicationListener=CreateCommunicationListener; this.Name=Name; } 默认名称是空字符串,因此如果不指定名称,则返回的枚举包含多个名为“”的侦听器,这会引发异常。默认实现中止已打开的侦听器并重新启动它们

解决方案很简单。在创建
ServiceInstanceListener

的可能副本时,只需指定一个(唯一的)名称即可