Конечно, это возможно. Вместо добавления номеров версий к классам веб-сервисов поместите их в отдельные виртуальные каталоги:
http://host/services/1.0/service.asmx
http://host/services/1.3/service.asmx
http://host/services/2.0/service.asmx
Затем вам придется разработать схему управления версиями (используйте ветки должным образом; см. this для некоторых мыслей по этому поводу), чтобы поддерживать все версии службы одновременно.
Что касается кода, вы можете попытаться абстрагироваться от различий между версиями служб за общим интерфейсом (подумайте AbstractService
), а затем использовать его как основу для реализаций, зависящих от версии (ServiceV1_3
).
Google дает довольно хорошие результаты именно для этой темы.