Я настроил свой экземпляр SDL Tridion 2011 для работы с несколькими заголовками узлов, и теперь основная служба не работает. Как мне это исправить? - PullRequest
8 голосов
/ 24 февраля 2012

Недавно я настроил свой SDL Tridion 2011 CME для использования нескольких заголовков хоста. Чтобы включить загрузку CME, я устанавливаю WCF.RedirectTo в соответствующем web.config. Однако мой основной сервис больше не работает. Я получаю следующую ошибку:

WebHost не смог обработать запрос. Информация об отправителе: System.ServiceModel.ServiceHostingEnvironment + HostingManager / 63835064 Исключение: System.ServiceModel.ServiceActivationException: служба '/webservices/CoreService.svc' не может быть активирована из-за исключения во время компиляции. Сообщение об исключении: эта коллекция уже содержит адрес со схемой http. В этой коллекции может быть не более одного адреса на схему. Если ваша служба размещается в IIS, вы можете решить эту проблему, установив 'system.serviceModel / serviceHostingEnvironment / multipleSiteBindingsEnabled' в значение true или указав 'system.serviceModel / serviceHostingEnvironment / baseAddressPrefixFilters'. Имя параметра: элемент. ---> System.ArgumentException: эта коллекция уже содержит адрес со схемой http. В этой коллекции может быть не более одного адреса на схему. Если ваша служба размещается в IIS, вы можете решить эту проблему, установив 'system.serviceModel / serviceHostingEnvironment / multipleSiteBindingsEnabled' в значение true или указав 'system.serviceModel / serviceHostingEnvironment / baseAddressPrefixFilters'.

Как мне это исправить?

1 Ответ

9 голосов
/ 24 февраля 2012

Вы можете включить привязки нескольких сайтов, отредактировав файл web.config для пользовательского интерфейса Tridion и базовой службы:

  • Откройте файл web.config в [Папка установки Tridion] \ web \ WebUI \WebRoot \
  • Найти раздел serviceHostingEnvironment Добавить новый атрибут для этого узла для множественногоSiteBindingsEnabled = "true"
  • Это должно выглядеть следующим образом: <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
  • Сохранить файл
  • Откройте файл web.config в [Папка установки Tridion] \ webservices \
  • Найдите раздел serviceHostingEnvironment
  • Добавьте в этот узел новый атрибут для множественногоSiteBindingsEnabled = "true".выглядит как <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
  • Сохраните файл

Если вы не хотите включать его для всех URL, вы можете включить его для определенных, таких как:

<system.serviceModel>  
    <serviceHostingEnvironment>  
        <baseAddressPrefixFilters>  
            <add prefix="http://test1.tridion.com"/>  
            <add prefix="http://test2.tridion.com"/>  
        </baseAddressPrefixFilters>  
    </serviceHostingEnvironment>  
</system.serviceModel>
...