Silverlight - сервисная настройка переключения - PullRequest
0 голосов
/ 18 октября 2010

Мы только что добавили выделенный тестовый сервер для наших приложений Silverlight. Мы размещаем полные копии всех наших приложений и сервисов на тестовом сервере. Проблема, с которой мы столкнулись, заключается в том, что нам нужно вручную обновлять ServiceReference.ClientConfig при развертывании, чтобы указывать на соответствующий сервер (т. Е. Тестовый или живой).

Я уверен, что это общая проблема. Что такое «наилучшая практика»?

Ответы [ 3 ]

3 голосов
/ 25 января 2011

Я использую этот метод:

http://www.funkymule.com/post/2010/03/08/XML-Transform-on-Silverlight-ClientConfig-Files.aspx

Это просто и отлично работает.

1 голос
/ 18 октября 2010

Обычно я создаю папку конфигурации в своем веб-проекте SL, содержащую ServiceReferences.ClientConfig для каждого местоположения, в которое я намерен публиковать приложение (ServiceReferences.ClientConfig.dev, ServiceReferences.ClientConfig.test, ServiceReferences.ClientConfig.prod).

Затем я создаю конфигурацию решения для каждой среды (dev, test, prod) и устанавливаю событие сборки приложения SL:

xcopy /R /Y $(ProjectDir)Configuration\ServiceReferences.ClientConfig.$(ConfigurationName) $(ProjectDir)ServiceReferences.ClientConfig

Перед публикацией, мне просто нужно выбрать конфигурацию, собрать и опубликовать

1 голос
/ 18 октября 2010

Я бы программно изменил имя хоста конечной точки в вашем приложении silverlight в зависимости от конкретного параметра, передаваемого со страницы хоста в приложение SL (конечно, это означает, что вам придется размещать приложение на другой странице при развертывании в тестесервер -или вы можете редактировать страницу хоста "на лету" как часть вашего сценария развертывания).

Например: на тестовой странице:

 <param name="initParams" value="testServer=myhost.com"/>

Затем в SilverlightЕсли вы прочитаете параметр testServer (вы получите хеш-таблицу initParams в событии Application_Startup) и программно зададите для имени хоста то, что вы получили.Вам понадобится какая-то централизованная фабрика для удаленного прокси, в противном случае вам придется заменить имя хоста в нескольких разных местах.

Кроме того, я бы сделал это только #if DEBUG (или даже лучше определил бы другую константу компиляции, котораябудет удалено до фактического развертывания), поэтому нет риска, что это будет использовано для какой-либо злонамеренной цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...