Возвращенные прослушиватели экземпляра службы добавляются в ServiceListenerInstanceCollection
([код] [1]), и это происходит сбой, если в коллекции уже есть экземпляр прослушивателя службы с таким именем.
ServiceInstanceListenerКонструктор имеет следующую реализацию:
public ServiceInstanceListener(
Func<StatelessServiceContext, ICommunicationListener> createCommunicationListener,
string name = "")
{
this.CreateCommunicationListener = createCommunicationListener;
this.Name = name;
}
Имя по умолчанию - пустая строка, поэтому, если вы не укажете имя, возвращаемое перечисление содержит несколько слушателей с именем "", и это вызывает исключение,Реализация по умолчанию отменяет уже открытые слушатели и перезапускает их.
Решение простое.Просто укажите (уникальное) имя при создании ServiceInstanceListener
.