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