Кто-нибудь использовал 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? Действительно ли существует страница?