Как назвать WCF Singleton Service в WCF Singleton Service без подвешивания?

StackOverflow https://stackoverflow.com/questions/2632571

  •  26-09-2019
  •  | 
  •  

Вопрос

У меня есть два сервиса, которые называют другой. Оба отмечены как Singletons следующим образом:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
    ConcurrencyMode = ConcurrencyMode.Multiple)]
public class Service : IService

И я установил их с помощью ServiceHost следующим образом:

ServiceHost serviceHost = new ServiceHost(singletonElement);
serviceHost.Open();

Когда родительская служба пытается позвонить в детскую службу на одной и той же машине, родительская служба висит, ожидая детского обслуживания.

Я уже рассматриваю ухожу от модели Singleton, но что-то не так с моим подходом? Есть пояснение для этого поведения и выхода из него?

Это было полезно?

Решение 2

Проблема заключалась в том, что я проходил в приложении WPF и не установил ISINGYNCHRONIZATIONCONTEXT на false. Это делает хост WCF Service в потоке интернет-пользовательского интерфейса, что вызывает тупик, когда у вас есть один сервис (в потоке пользовательского интерфейса), вызывая другую услугу (также на ните UI).

Другие советы

Родительская служба висит ее, потому что может быть, потому что метод обслуживания ребенка слишком длинный. Если требуется много времени, чтобы вернуть его асинронизм или сделать метод для детей IsOneWayo=True в орасингенсионный контроль затрат.

Одностороннее обслуживание Огонь и забудьте Вид называть это не возвращает никакого значения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top