Клиент службы WCF - переключение между разработкой и производством - передовой опыт (развертывание) - PullRequest
2 голосов
/ 04 декабря 2011

У меня есть машина для разработки с клиентом WCF, разработка сейчас завершена
Я хочу перейти на производство
поэтому я получил ссылку WSDL на рабочий сервер (тот же сервис, другая ссылка)

Что мне нужно изменить в выпуске веб-конфигурации, чтобы перейти к производству?

Спасибо

Редактировать
Есть еще одна вещь, когда я импортирую dev WSDL, я получил это в моей конфигурации, как я могу создать один для производства?

<identity>
   <certificate encodedValue="AwAAAAEAAAAUAAAAiMP2hRL597Js3Czdjo....." />
</identity>

1 Ответ

5 голосов
/ 05 декабря 2011

Чтобы найти разницу между prod WSDL и DEV WSDL, вам нужно использовать svcutil.

Откройте командную строку Visual Studio и запустите:

svcutil http://prod/service.svc

Это даст вам местоположение "output.config".Откройте это и посмотрите на различия.

Для развертывания рекомендуется использовать Преобразования Web.Config , которые Microsoft встроила в Visual Studio 2010. Подробнее здесь: http://msdn.microsoft.com/en-us/library/dd465318.aspx

Основные шаги:

  1. Создание web.debug.config, web.release.config
  2. Убедитесь, что в настройках конфигурации сборки указано «release».
  3. Измените «web.release.config» с вашими изменениями, используя синтаксис замены, указанный в ссылке выше.Вы можете заменить любой узел в вашем оригинальном файле web.config.
  4. Разверните сайт, используя публикацию в один клик или создайте пакет развертывания .

Ниже приведен пример файла web.release.config, который заменяет область конфигурации конечной точки.Обратите внимание на xdt: Transform = "Replace" , который заменяет весь узел client .

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <system.serviceModel>
        <client xdt:Transform="Replace">
            <endpoint address="http://prod/service.svc/binary" binding="customBinding"  behaviorConfiguration="LargeGraphBehavior"
                bindingConfiguration="BinaryHttpBinding" contract="CustomerService.ICustomer"
                name="BasicHttpBinding_ICustomer">
               <identity>
                   <certificate encodedValue="AwAAAAEAAAAUAAAAiMP2hRL597Js3Czdjo....." />
               </identity>
            </endpoint>
        </client>
    </system.serviceModel>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...