Маршрутизация вызовов к устаревшей веб-службе ASMX через службу маршрутизации WCF - PullRequest
2 голосов
/ 08 июля 2011

Я работаю над унаследованным приложением, которое содержит ссылки на два веб-сервиса .asmx.Мы хотим реструктурировать уровень обслуживания так, чтобы он в большей степени соответствовал шаблону Enterprise Service Bus, где клиент будет направлять все свои вызовы на одну службу, которая обрабатывает маршрутизацию запросов к соответствующим службам.

У меня естьработал со службой маршрутизации WCF и смог успешно перенаправить вызов в службу WCF через службу RoutingService и перейти к соответствующей службе.

Например, клиент может сделать вызов:

http://routingservice/RoutingService.svc/WcfService

и служба маршрутизации перенаправит его на

http://wcfservice/WcfService

по правилам, которые я указываю в конфигурации

Я бы хотел как-то добиться того же результата с помощью.Службы asmx, к которым я могу просто обновить URL-адрес веб-ссылки в устаревшем приложении, чтобы он указывал на службу маршрутизации, которая затем перенаправит запросы по URL-адресу, который клиент использует в настоящее время

Изменение:

http://webservices/LegacyService.asmx

до

http://routingservice/RoutingService.svc/LegacyWebService

Возможно ли это сделать так, как ячернила?

1 Ответ

6 голосов
/ 08 июля 2011

Я никогда не пробовал, но теоретически это должно работать без проблем. WCF обратно совместим с ASMX - вы можете использовать клиент WCF для связи с ASMX, а WCF можно использовать вместо ASMX с некоторой дополнительной конфигурацией, если ему требуется доступ к конвейеру ASP.NET. Просто попробуйте использовать конечную точку маршрутизации с basicHttpBinding (которая используется для обратной совместимости). Для услуги маршрутизации используйте IRequestReplyRouter контракт.

Может быть одна проблема - если ваши ASMX-сервисы используют сеанс ASP.NET, сеансовый ключ передается в cookie-файле - я не уверен, как служба маршрутизации работает с cookie-файлами.

...