Wiele instancji samodzielnej usługi WCF
Mamy „robotniczą” usługę uruchamianą z aplikacji konsoli w c #, dla rozwoju zawsze uruchamialiśmy jedną instancję tej usługi, która pobiera porcje danych i wykonuje pewne obliczenia, te fragmenty danych są dostarczane przez inną usługę (która śledzi ile danych pozostało itd.)
Teraz w QA chcemy uruchomić wiele instancji usługi „pracownik” jednocześnie (na tej samej maszynie). Jednak otrzymujemy wyjątek, gdy tylko uruchomiona zostanie druga instancja:
TransportManager nie mógł nasłuchiwać na dostarczonym URI przy użyciu usługi NetTcpPortSharing: URI jest już zarejestrowany w usłudze.
Używamy netTcpBinding, a adres punktu końcowego jest na stałe wpisany w app.config i pozostaje taki sam, dlatego zakładam, że otrzymujemy ten błąd.
<services>
<service behaviorConfiguration="CoreBehavior" name="WorkerService">
<endpoint address="net.tcp://localhost:8001/WorkerAssignment" binding="netTcpBinding" contract="IWorkerService" bindingConfiguration="CoreTcpBinding"/>
</service>
</services>
<bindings>
<netTcpBinding>
<binding name="CoreTcpBinding" portSharingEnabled="true">
<security mode="None"/>
</binding>
</netTcpBinding>
</bindings>
Kod aplikacji:
var host = new ServiceHost(typeof(WorkerService));
host.Open();
Jak zapewnić inny URI dla każdej instancji, aby przynajmniej jeden port pozostał taki sam?
LUB Jeśli istnieje inny sposób uruchamiania wielu wystąpień tej samej usługi?