Кто-нибудь использовал LINQPad для подключения к Tridion Core Services?

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

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

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

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

LINQPad's connection window

Ответ 1

Чтение через это: 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.

Ответ 2

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

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

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

  • Переключить язык LINQPad на "С# Program"
  • Вставить фрагмент кода ниже
  • Добавьте необходимые ссылки на DLL из фрагмента кода
  • Добавьте необходимые ссылки на пространство имен из фрагмента кода
  • Укажите собственные значения имени хоста, имени пользователя и пароля
  • Напишите свой код

LINQPad может обрабатывать несколько языков. По умолчанию используется выражение "С# Expression", что означает, что вы можете просто указать один "оператор" в панели кода. Это отлично работает при работе с, например, SQL, для которых доступен драйвер, но недостаточно хорош для взаимодействия с Tridion Core Service. Поэтому сначала вам нужно переключить его с языка "С# Expression" на "С# 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.

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

Update

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

Ответ 3

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