C# のコンソール アプリケーションから実行されている「ワーカー」サービスがあります。開発のために、データのチャンクを取得していくつかの計算を実行するこのサービスの単一のインスタンスを常に実行していました。これらのデータのチャンクは別のサービスによって提供されます (追跡します)。データの残量など)
QA では、「worker」サービスの複数のインスタンスを同時に (同じマシン上で) 実行したいと考えています。ただし、2 番目のインスタンスが起動されるとすぐに例外が発生します。
TransportManager は、NetTcpPortSharing サービスを使用して提供された URI をリッスンできませんでした: URI は既にサービスに登録されています。
私たちは 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 を提供するにはどうすればよいでしょうか?
または、同じサービスの複数のインスタンスを実行する別の方法がある場合は?