У меня есть несколько сервисов WCF. Все работает нормально, но я ищу способы нормализовать / упростить полученную конфигурацию. Я максимально упростил это, но я все еще не счастлив. В настоящее время мой конфиг выглядит так:
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="BindingConfiguration" ...>
...
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
...
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="ServiceBehavior" name="Name1">
<endpoint address="net.tcp://localhost:8080/name1" binding="netTcpBinding" bindingConfiguration="BindingConfiguration" contract="Contract1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</service>
<service behaviorConfiguration="ServiceBehavior" name="Name2">
<endpoint address="net.tcp://localhost:8080/name2" binding="netTcpBinding" bindingConfiguration="BindingConfiguration" contract="Contract2">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</service>
...
</services>
</system.serviceModel>
Всего у меня 6 сервисов, так что это повторяется. В идеале я бы хотел:
- Чтобы указать "localhost: 8080" только один раз и использовать его совместно для всех служб, укажите только разницу ("name1" или "name2")
- Укажите идентификационную информацию только один раз и поделитесь между всеми определениями услуг
К моему первому замечанию, я знаю о базовых адресах , но это работает только на уровне сервиса, а не на разных сервисах. Во-вторых, я пытался переместить информацию об идентичности в поведение конечной точки, но это не поддерживается.
Могу ли я что-нибудь сделать, чтобы упростить эту конфигурацию? Или мой единственный вариант - перейти к подходу конфигурации на основе кода?