Могу ли я развернуть несколько экземпляров службы WCF в IIS с одним и тем же пространством имен?
Мне нужно развернуть одну и ту же службу WCF в нескольких виртуальных каталогах на одном сайте в IIS. Не вызывает ли это проблемы, если у меня одинаковое пространство имен для всех этих экземпляров?
2 ответа
В BizTalk - дублированное пространство имен имело бы значение, но с виртуальными каталогами IIS в качестве границы не должно быть проблем.
Вы можете зарегистрировать службу с использованием нескольких конечных точек через маршрутизацию службы MVC и вообще избежать создания виртуальных каталогов.
ServiceHostFactory serviceHost = new ServiceHostFactory();
RouteTable.Routes.Add(new ServiceRoute("SoapService", serviceHost, typeof(SoapService)));
RouteTable.Routes.Add(new ServiceRoute("directory1/SoapService", serviceHost, typeof(SoapService)));
RouteTable.Routes.Add(new ServiceRoute("directory2/SoapService", serviceHost, typeof(SoapService)));
Если вы используете классическую активацию службы с физическими файлами SVC, вы должны иметь возможность указывать каждый виртуальный каталог в том же физическом месте, где существуют файлы SVC.
Технически, служба не несет ответственности за свой хостинг, то есть файл.svc (или запись службы в конфигурации). Не должно быть причин, по которым у вас возникнут какие-либо проблемы, поскольку каждый экземпляр находится на отдельной конечной точке. Люди делают это даже в одном и том же виртуальном каталоге, размещая один и тот же сервис несколько раз с разными привязками в каждой конечной точке. Например, моя служба безопасности имеет одну и ту же службу, размещенную с разной защитой в конечной точке, в зависимости от того, хотите ли вы пройти проверку подлинности с помощью имени пользователя / пароля, аутентификации Windows или существующего токена.