Как настроить мое веб-приложение для привязки с помощью основного сервиса?


4

Я разрабатываю веб-приложение ASP.NET (C#), которое будет запускаться на сервере Content Manager, который будет использовать базовую услугу Tridion 2013.

Как настроить мое веб-приложение на использование основной службы? Должен ли я просто ссылаться на основные сервисные сборки в моем проекте или мне также нужно настроить конечную точку?

Я видел много примеров, но в основном использую MVC, чего я не делаю.

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

Любого образец проект будет действительно оценен

3

Вы можете использовать код ниже, чтобы создать клиент службы ядра в вашем веб-приложения:

/// <summary> 
/// Core service client configuration 
/// </summary> 
/// <returns>return the client detail</returns> 
public static CoreServiceClient GetCoreServiceSettings() 
{ 
    var binding = new NetTcpBinding 
    { 
     MaxReceivedMessageSize = 2147483647, 
     ReaderQuotas = new XmlDictionaryReaderQuotas 
     { 
      MaxStringContentLength = 2147483647, 
      MaxArrayLength = 2147483647 
     } 
    }; 

    var endpoint = new EndpointAddress("net.tcp://localhost:2660/CoreService/2013/netTcp"); 

    var client = new CoreServiceClient(binding, endpoint); 
    client.ChannelFactory.Credentials.Windows.ClientCredential = new NetworkCredential(
                    "YourAdminUserID", 
                    "Password"); 
    return client; 
} 

7

Если вы начинаете с основной службы, то я настоятельно рекомендую вам проверить Core Service Recipes раздел the Tridion Practice project на GitHub.

Это примеры получения клиента базовой службы with и without конфигурационного файла.

Я также рекомендую внимательно прочитать раздел онлайн-документации Interacting with the Core Service from client-side .NET.


4

Ниже приведены шаги, которые вы можете выполнить для начала работы.

ШАГ 1: Определение основной службы Endpoints:

Tridion Ядро Service End Points присутствуют в файле: Tridion.ContentManager.CoreService.Client.dll.config на пути: %TRIDION_HOME%\bin\client\ на сервере Tridion.

Они будут выглядеть, как показано ниже:

<client> 

     <endpoint name="basicHttp_2013" 
       address="http://localhost/webservices/CoreService2013.svc/basicHttp" 
       binding="basicHttpBinding" bindingConfiguration="basicHttp" 
       contract="Tridion.ContentManager.CoreService.Client.ICoreService"/> 
     <!-- Some More Endpoints will be there here --> 
</client> 


ШАГ 2: Добавление ссылка на основной службы

  • Добавить ссылку на DLL Tridion: Tridion.ContentManager.CoreService.Client.dll
  • Добавьте конечные точки обслуживания в свои Web.Config (веб-приложения) или в свой App.config при использовании любого проекта консоли.

ШАГ 3: Инициализация сердечника службы

Создание класса и инициализации сердечника службы в конструкторе класса.Поставка необходимого Username/Password и использовать любой из конечных точек, как в шаге 1

public class TridionCoreServiceHelper 
    { 
     // This EndPoint Name is in the Config as mentioned above 
     private readonly string endpointName = "basicHttp_2013"; 
     public TridionCoreServiceHelper() 
     { 
      client = new CoreServiceClient(endpointName); 
      client.ClientCredentials.UserName.UserName = // User_Name 
      client.ClientCredentials.UserName.Password = //Password 
     }  

     private CoreServiceClient client; 
    } 


ШАГ 4: Запросы с использованием Tridion сердечника службы

После службы инициализируется, Выполнять Запросы, такие как Список публикаций, Цели публикации ...

public XElement GetPublicationList() 
     { 
      PublicationsFilterData filter = new PublicationsFilterData(); 
      return client.GetSystemWideListXml(filter); 
     } 

    public XElement GetPublicationTargetList() 
     { 
      PublicationTargetsFilterData filter = new PublicationTargetsFilterData(); 
      return client.GetSystemWideListXml(filter); 
     } 

Получить Пользователи:

public XElement GetUserGrouptList() 
     { 
      UsersFilterData filter = new UsersFilterData(); 
      return client.GetSystemWideListXml(filter); 
     } 

ОБРАЗЕЦ ПРОЕКТА: Проверить это один из лучших образцов Проекта Yabolka на Git концентратору

URL: https://github.com/yabolka/TridionCoreServiceAPI

+1

Обратите внимание, что если вы размещаете ваши веб-приложения на веб-сайте СМ, вы дон не нужно беспокоиться о конфигурации конечной точки Core Service: ваше веб-приложение наследует конфигурацию, определенную в web.config корневого сайта веб-сайта CM. 25 сен. 152015-09-25 09:55:56

  0

Great Point Rick! 25 сен. 152015-09-25 10:08:18


0

, вы должны определить <bindings><basicHttpBinding> inside <System.serviceModel> вашего конфигурационного файла. Добавьте: - <client><endpoint name="basicHttp_2013" **or** <endpoint name="netTcp_2013"

<client> 
     <endpoint name="basicHttp_2013" address="http://1.1.1.1/webservices/CoreService2013.svc/basicHttp" binding="basicHttpBinding" bindingConfiguration="basicHttp" contract="Tridion.ContentManager.CoreService.Client.ICoreService" /> 
     <endpoint name="streamDownload_basicHttp_2013" address="http://1.1.1.1/webservices/CoreService2013.svc/streamDownload_basicHttp" binding="basicHttpBinding" bindingConfiguration="streamDownload_basicHttp" contract="Tridion.ContentManager.CoreService.Client.IStreamDownload" /> 
     <endpoint name="streamUpload_basicHttp_2013" address="http://1.1.1.1/webservices/CoreService2013.svc/streamUpload_basicHttp" binding="basicHttpBinding" bindingConfiguration="streamUpload_basicHttp" contract="Tridion.ContentManager.CoreService.Client.IStreamUpload" /> 

     <endpoint name="netTcp_2013" address="net.tcp://localhost:protnumber/CoreService/2013/netTcp" binding="netTcpBinding" bindingConfiguration="netTcp" contract="Tridion.ContentManager.CoreService.Client.ISessionAwareCoreService" /> 
    </client> 

затем ----------------------- Создать клиента --------- ------------------

CoreServiceClient client = new CoreServiceClient("basicHttp_2013"); // If outside the server 
    or 
SessionAwareCoreServiceClient client = new SessionAwareCoreServiceClient("netTcp_2013"); // From localhost  
client.Impersonate("userName"); 

Пример проекта указывается в ответах выше