Mam aplikację, która wielokrotnie używa tego samego kanału WCF. Zachowuję statyczne odwołanie przez obiekt fabryczny. Zastanawiam się, czy to dobrze, czy powinienem otworzyć x kanałów i zaokrąglić wszystkie połączenia usług przez te kanały, zamiast korzystać z pojedynczego kanału?Pojedyncza wydajność kanału WCF w stosunku do wielu kanałów
Czy te wywołania serwisowe są umieszczane w kolejce, jeśli używa się tylko jednego kanału, czy też dzieje się tak samo, gdy korzystam z x kanałów?
Trzymanie obiektu ICommunicationObject przez _channelFactory.CreateChannel() nie jest dobrym pomysłem? Teraz mam otwarty 1 kanał dla wszystkich żądań, nie robię _channelFactory.CreateChannel() dla każdego połączenia, używam ponownie statycznego, utworzonego po raz pierwszy. –
@Bjorn Bailleul, nie jest to dobry pomysł. Instancje zwracane przez '_channelFactory.CreateChannel()' powinny być jak najkrótsze i nigdy nie mogą być ponownie użyte. Jak już powiedziałem, połączenie "CreateChannel" nie jest drogie. To jest bardzo szybkie. Możesz zadzwonić do każdego żądania. Kosztowne jest stworzenie fabryki kanałów. To jest pamięć podręczna. –
@Darin - Czy masz referencję lub link do "użyj innego kanału dla każdego połączenia". Ten blog jest jednym z najczęściej cytowanych artykułów na temat fabryk kanału, a jego pierwszą najlepszą praktyką jest "Ponownie użyj tego samego serwera proxy": http://blogs.msdn.com/b/wenlong/archive/2007/10/27/performance -poprawa-wcf-client-proxy-creation-and-best-practices.aspx – ErnieL