Несколько экземпляров собственной службы WCF
У нас есть «работник» служба, запущенная из консольного приложения в c #, для разработки мы всегда запускали один экземпляр этой службы, которая выбирает порции данных и выполняет некоторые вычисления, эти порции данных предоставляются другой службой (которая отслеживает, сколько данных осталось так далее.)
Теперь в QA мы хотим запустить несколько экземпляров & quot; worker & quot; обслуживание одновременно (на одной машине). Однако мы получаем исключение, как только запускается второй экземпляр:
The TransportManager failed to listen on the supplied URI using the NetTcpPortSharing service: the URI is already registered with the service.
Мы используем netTcpBinding, а адрес конечной точки жестко закодирован в app.config и остается неизменным, и поэтому я предполагаю, что мы получаем эту ошибку.
<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>
Код приложения:
var host = new ServiceHost(typeof(WorkerService));
host.Open();
Как мы предоставляем разные URI для каждого экземпляра, чтобы по крайней мере порт оставался прежним?
ИЛИ Есть ли другой способ запустить несколько экземпляров одного и того же сервиса?