2012-01-11 2 views
0

Мы используем несколько приложений WCF RESTful на Azure, один для пользователей на Xbox 360 и один для пользователей на PS3. Основная архитектура для обоих должна немного меняться, поэтому мы не можем объединить конечные точки в одну роль.Azure custom endpoint

В настоящее время обе роли находятся под одним развертыванием на одной размещенной службе. Однако, при доступе к ролям, возможно ли, чтобы они сидели на пользовательских конечных точках? Может ли быть распространено на пользовательские папки внутри конечных точек?

Прямо сейчас, я получить доступ к приложению WCF REST через http://[servicename].cloudapp.net/[template]

, но я хотел бы быть в состоянии отделить их либо как http://[servicename].cloudapp.net/[gamename]/ps3/[template] http://[servicename].cloudapp.net/[gamename]/360/[template]

где [GameName]/[окр]/будет направлять на другую роль.

Теперь, когда он настроен, все запросы отправляются на мою конечную точку PS3, даже если роль Xbox360 запущена с различными службами.

Мой вопрос: могу ли я сделать это, отредактировав файл ServiceDefinition.csdef или ServiceConfiguration.Cloud.cscfg без изменения кода C# службы?

ответ

1

Я считаю, что короткий ответ - нет. Вам нужно будет отредактировать привязки конечных точек в веб-конфигурации или в коде, чтобы облегчить эти изменения в поведении службы.

0

Если у вас есть две роли в развертывании, в файле ServiceDefinition.csdef должна быть конечная точка объявлена ​​для каждого, используя другой порт:

< имя InputEndpoint = протокол «Endpoint1» = «HTTP» порт = «8080»/>

Таким образом, вы можете получить доступ к один с помощью http://[servicename].cloudapp.net/, а другой с помощью http://[servicename].cloudapp.net:8080/

Затем вы можете использовать WCF Routing Service для создания [GameName]/ps3/[шаблон] маршрутов для каждого из них и вам должно быть хорошо идти. Но каждый должен быть на другом порту, кроме 80, чтобы они оба слушали запросы.