无法在 CreateServiceInstanceListeners 中使用多个 ServiceInstanceListener 对象
Unable to use multiple ServiceInstanceListener objects in CreateServiceInstanceListeners
我已经创建了一个 Service Fabric 应用程序和 StatelessService.CreateServiceInstanceListeners
returns multiple ServiceInstanceListener
对象。服务侦听器已打开,但几乎立即中止。然后它再次打开侦听器(不经过 CreateServiceInstanceListeners
,中止它们,...
当我只使用一个服务监听器时,一切正常。
返回的服务实例侦听器被添加到 ServiceListenerInstanceCollection
([code][1]),如果集合中已经存在同名的服务侦听器实例,则此操作失败。
ServiceInstanceListener 构造函数具有以下实现:
public ServiceInstanceListener(
Func<StatelessServiceContext, ICommunicationListener> createCommunicationListener,
string name = "")
{
this.CreateCommunicationListener = createCommunicationListener;
this.Name = name;
}
默认名称为空字符串,因此如果您不指定名称,则返回的枚举包含多个名为“”的侦听器,这会引发异常。默认实现中止已经打开的侦听器并重新启动它们。
解决方法很简单。创建 ServiceInstanceListener
.
时只需指定一个(唯一的)名称
我已经创建了一个 Service Fabric 应用程序和 StatelessService.CreateServiceInstanceListeners
returns multiple ServiceInstanceListener
对象。服务侦听器已打开,但几乎立即中止。然后它再次打开侦听器(不经过 CreateServiceInstanceListeners
,中止它们,...
当我只使用一个服务监听器时,一切正常。
返回的服务实例侦听器被添加到 ServiceListenerInstanceCollection
([code][1]),如果集合中已经存在同名的服务侦听器实例,则此操作失败。
ServiceInstanceListener 构造函数具有以下实现:
public ServiceInstanceListener(
Func<StatelessServiceContext, ICommunicationListener> createCommunicationListener,
string name = "")
{
this.CreateCommunicationListener = createCommunicationListener;
this.Name = name;
}
默认名称为空字符串,因此如果您不指定名称,则返回的枚举包含多个名为“”的侦听器,这会引发异常。默认实现中止已经打开的侦听器并重新启动它们。
解决方法很简单。创建 ServiceInstanceListener
.