У меня есть куча самодостаточных WCF-сервисов. Все работает нормально, но я ищу способы нормализации/упрощения результирующей конфигурации. Я упростил его как можно больше, но я до сих пор не доволен. В настоящее время моя конфигурация выглядит так:Упрощение конфигурации 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 сервисов, поэтому он повторяется. В идеале я хотел бы:
- Чтобы задать «локальный: 8080» только один раз и поделена между всеми службами, и только указать разницу («name1» или «name2»)
- Укажите только идентификационную информацию один раз и доля между всеми определениями услуг
К моему первому пункту, я знаю base addresses, но это работает только на уровне обслуживания, а не через отдельные службы. К моему второму пункту, я попытался переместить идентификационную информацию в поведение конечной точки, но это, похоже, не поддерживается.
Есть ли что-нибудь, что я могу сделать, чтобы упростить эту конфигурацию? Или мой единственный вариант - перейти на подход, основанный на использовании кода?
Лентяй - боялся. Спасибо, в любом случае. –