Кто-нибудь использовал LINQPad для подключения к Tridion Core Services? - PullRequest
12 голосов
/ 12 марта 2012

Я люблю LINQPad ! Я пытаюсь подключиться к Tridion Core Services с помощью коннектора WCF в LINQPad, чтобы помочь мне в быстрой разработке и изучении Core.

В настоящее время LINQPad сообщает об ошибке 404 (не найдено) для URI, но этот же URI работает в моем браузере.

Кто-нибудь еще успешно подключился?

Окно подключения LINQPad

LINQPad's connection window

Ответы [ 3 ]

12 голосов
/ 13 марта 2012

Читая это: http://markistaylor.com/2010/09/09/linqpad-beyond-linq/ кажется, что вы могли бы сделать это, добавив ссылку на System.ServiceModel.dll и [Tridion_Home] \ bin \ client \ Tridion.ContentManager.CoreService.Client.DLL (под Query -> Query Properties) для LINQPad.

12 голосов
/ 26 октября 2012

LINQPad теперь является моим предпочтительным инструментом для взаимодействия с Tridion через его API-интерфейс Core Service.

Если вы просто загружаете обычный LINQPad , он может подключаться к службам данных WCF (обычноизвестные как источники OData), базы данных SQL Server и на рынок служб данных Azure.Поскольку базовая служба Tridion не относится ни к одному из этих типов, вы не можете создать постоянное соединение с ней.

Но вы все равно можете использовать LINQPad в качестве упрощенной альтернативы Visual Studio, выполнив следующие действия:

  1. Переключить язык LINQPad на «Программу на C #»
  2. Вставить фрагмент кода ниже
  3. Добавить необходимые ссылки DLL из фрагмента кода
  4. Добавить необходимые ссылки на пространство имен изфрагмент кода
  5. Укажите свои собственные значения для имени хоста, имени пользователя и пароля
  6. Введите свой код

LINQPad может работать с несколькими языками.По умолчанию используется «C # Expression», что означает, что вы можете просто указать один «оператор» на панели кода.Это прекрасно работает при работе, например, с базами данных SQL, для которых доступен драйвер, но недостаточно для взаимодействия с базовой службой Tridion.Поэтому сначала вам нужно переключить его с языка «C # Expression» на язык «C # Program» на панели инструментов в верхней части вашего запроса.

После переключения языка я обычно начинаю со следующего шаблона

void Main()
{
    // System.Runtime.Serialization.dll
    // System.ServiceModel.dll
    // System.Net.dll
    // Namespaces:
    // System.Net
    // System.ServiceModel
    // Tridion.ContentManager.CoreService.Client
    var binding = new NetTcpBinding { MaxReceivedMessageSize = 2147483647, ReaderQuotas = new XmlDictionaryReaderQuotas { MaxStringContentLength = 2147483647, MaxArrayLength = 2147483647 } };
    var endpoint = new EndpointAddress("net.tcp://<hostname>:2660/CoreService/2011/netTcp");
    var DEFAULT_READ_OPTIONS = new ReadOptions();

    CoreServiceClient client = new CoreServiceClient(binding, endpoint);
    client.ChannelFactory.Credentials.Windows.ClientCredential = new NetworkCredential("<username>", "<password>");
    try {
        // TODO: fill in the blanks
    } finally {
        if (client.State == CommunicationState.Faulted) client.Abort(); else client.Close();
    }    
}

После вставки этого кода откройте окно свойств запроса (F4) и добавьте System.Runtime.Serialization.dll, System.ServiceModel.dll и System.Net.dll на вкладку Дополнительные ссылки.Убедитесь, что у вас есть копия Tridion.ContentManager.CoreService.Client.dll на вашем компьютере, и добавьте ссылку на нее.(Вы можете найти это в Tridion / bin / client на вашем сервере)

Добавьте System.Net, System.ServiceModel и Tridion.ContentManager.CoreService.Client на вкладку Импорт дополнительных пространств имен.

Измените <hostname>, <username> и <password> значений в коде и проверьте, если соединение установлено успешно.

После этого заполните пробелы и начните веселиться с Core Service API.

Iрекомендуем постоянно держать документацию по API ядра службы (в формате CHM) открытой.С этим открытием я обнаружил, что могу продвинуться довольно далеко даже без автозаполнения.А если вы сохраните только что созданный запрос, вы можете легко клонировать его с помощью ctrl-shift-C и получить новый запрос с уже заполненными языком, ссылками на DLL и пространствами имен.

Обновление

Более простой способ подключения к Tridion из LINQPad теперь задокументирован здесь: https://sdltridionworld.com/articles/sdltridion2011/using_linqpad_with_tridion.aspx

2 голосов
/ 12 марта 2012

Вы можете проверить журнал IIS для Content Manager - вы видите 404 из попытки соединения LINQPaD?Страница действительно существует?

...