В настоящее время я внедряю службу WCF REST для веб-роли в Windows Azure и пытаюсь добавить связь между экземплярами роли, чтобы они могли обновлять друг друга, например, когда некоторые данные обновлено в хранилище BLOB-объектов. Я хотел бы разместить одну и ту же службу WCF как на внешней, так и на внутренней конечных точках HTTP веб-роли. Однако из того, что я прочитал, WCF ограничен только одним базовым адресом на протокол при размещении в IIS. Когда я включаю внутреннюю конечную точку HTTP для своей роли и пытаюсь запустить службу с помощью WebServiceHostFactory, я получаю сообщение об ошибке:
Эта коллекция уже содержит
адрес со схемой http. Там может
быть не более одного адреса на схему в
эта коллекция.
Имя параметра: элемент
Я немного погуглил, и один обходной путь, который я видел в разных местах, предлагает добавить baseAddressPrefixFilter в web.config. Однако, если я не знаю полного URL-адреса для любой конечной точки до запуска приложения, я не уверен, как заставить это работать.
В качестве альтернативы, эта проблема ограничена только хостингом IIS, так есть ли другой способ размещения, который я мог бы использовать в Azure, который бы работал? Я бы подумал, что хостинг вне любого контекста IIS или чего-то еще не будет достаточно надежным / безопасным, но я точно не знаю.
Кто-нибудь знает, как обойти эту проблему? Кажется, что было бы довольно распространенным желанием разместить веб-сервис на обеих конечных точках веб-роли. Я относительно новичок в WCF, поэтому может быть что-то очевидное, что мне не хватает. Любая помощь приветствуется.