Резервный список маршрутизации WCF в клиенте
Можно ли определить список резервного копирования WCF на клиенте, чтобы служба маршрутизации в одной точке контакта не была необязательной?
У меня есть две службы, реализующие один и тот же контакт (интерфейс). Если первая служба недоступна, я бы хотел, чтобы клиент знал, что должна использоваться служба резервного копирования.
Возможно ли это, или мне нужно создать службу маршрутизации (единую точку контакта), с которой клиент будет связываться?
<client>
<endpoint address="http://localhost:49192/OrdinaryCustomerService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICustomer"
contract="OrdinaryCustomerServiceReference.ICustomer" name="OrdinaryCustomerService" />
<endpoint address="http://localhost:49860/PremiumCustomerService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICustomer"
contract="PremiumCustomerServiceReference.ICustomer" name="PremiumCustomerService" />
</client>
<routing>
<backupLists>
<backupList name="CustomerBackupList">
<add endpointName="PremiumCustomerService"/>
</backupList>
</backupLists>
</routing>
1 ответ
Просто идея, но у меня похожая проблема, и я думал о создании службы маршрутизации на клиенте (в моем случае, веб-сервере IIS), чтобы все запросы на веб-сервере могли переключаться на другие веб-службы. У нас также есть несколько веб-серверов для восстановления при сбое, поэтому я бы поставил на каждый маршрутизатор.
Не идеальное, но лучшее решение, которое я нашел до сих пор. Если маршрутизатор на блоке IIS выйдет из строя, то вероятность того, что IIS также будет отключен, и, следовательно, наша система в любом случае перехватит другой веб-сервер.
У нас также есть надлежащие маршрутизаторы wfc с резервной копией для нашего среднего уровня, но раньше это было ручное изменение в веб-сервисе, чтобы справиться с этим.