我爱LINQPad!我正在尝试使用LINQPad中的WCF连接器连接到Tridion Core Services,以帮助我快速开发和扩展。学习核心。
目前,LINQPad报告了URI的404(未找到)错误,但同样的URI在我的浏览器中有效。
其他人成功连接?
LINQPad的连接窗口
答案 0 :(得分:12)
阅读: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。
答案 1 :(得分:12)
LINQPad现在是我通过其核心服务API与Tridion交互的首选工具。
如果只是download a plain LINQPad,它可以连接到WCF数据服务(通常称为OData源),SQL Server数据库和Azure数据服务市场。由于Tridion的核心服务不属于这些类型,因此无法与其建立持久连接。
但是,您仍然可以通过以下步骤使用LINQPad作为Visual Studio的轻量级替代方法:
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)并将“{1}},System.Runtime.Serialization.dll
和System.ServiceModel.dll
添加到”其他参考“选项卡。确保您的计算机上有Tridion.ContentManager.CoreService.Client.dll的副本,并添加对它的引用。 (您可以在服务器上的Tridion / bin / client中找到它)
将System.Net.dll
,System.Net
和System.ServiceModel
添加到其他命名空间导入标签。
更改代码中的Tridion.ContentManager.CoreService.Client
,<hostname>
和<username>
值,并测试连接是否成功。
在此之后,填写空白并开始使用Core Service API。
我建议始终保持核心服务API文档(CHM格式)处于打开状态。随着那个开放,我发现即使没有自动完成,我也可以走得很远。如果保存刚创建的查询,可以使用ctrl-shift-C轻松克隆它,并且已经填写了语言,DLL引用和命名空间的新查询。
现在可以在此处记录从LINQPad连接到Tridion的更简单方法:https://sdltridionworld.com/articles/sdltridion2011/using_linqpad_with_tridion.aspx
答案 2 :(得分:2)
您可以检查内容管理器的IIS日志 - 您是否看到LINQPaD连接尝试中的404?页面确实存在吗?