无法从任何其他机器上找到使用core服务创建的项目,安装Tridion CMS的机器除外

无法从任何其他机器上找到使用core服务创建的项目,安装Tridion CMS的机器除外,tridion,tridion-2011,Tridion,Tridion 2011,除了安装了Tridion CMS的机器外,我无法在任何其他机器上找到使用核心服务创建的任何项目(架构/组件),但当我在使用相同控制台应用程序安装了Tridion CMS的机器上创建任何项目时,我能够使用TCM URI定位该特定项目。是否有任何配置需要在配置文件中定义(我认为这个问题与刷新或清除浏览器缓存无关),以及当TCM URI也从其他机器生成时,那么即使从安装CMS服务器的位置也无法搜索该项目。请建议 更多信息:- 我正在开发SDL Tridion 2011 GA,下面是创建我正在使用的组件

除了安装了Tridion CMS的机器外,我无法在任何其他机器上找到使用核心服务创建的任何项目(架构/组件),但当我在使用相同控制台应用程序安装了Tridion CMS的机器上创建任何项目时,我能够使用TCM URI定位该特定项目。是否有任何配置需要在配置文件中定义(我认为这个问题与刷新或清除浏览器缓存无关),以及当TCM URI也从其他机器生成时,那么即使从安装CMS服务器的位置也无法搜索该项目。请建议

更多信息:-

我正在开发SDL Tridion 2011 GA,下面是创建我正在使用的组件的示例代码:-

公共静态字符串CreateComponentStack(字符串folderUri、字符串标题、,
字符串(schemaID)
{
core_service.ServiceReference1.SessionaWareCoReserveC2010客户端=
新SessionAwareCoreService2010Client();
client.ClientCredentials.Windows.ClientCredential.UserName=“myUserName”;
client.ClientCredentials.Windows.ClientCredential.Password=“myPassword”;
client.Open();
ReadOptions ReadOptions=新的ReadOptions();
字符串TargetFolderTcmId=folderUri;
字符串LinkSchemaTcmId=schemaID;
ComponentData CurrentMigrationComponent=client.GetDefaultData(
ItemType.Component,TargetFolderTcmId)作为ComponentData;
LinkToSchemaData SchemaToUse=新的LinkToSchemaData();
SchemaToUse.IdRef=LinkSchemaTcmId.ToString();
CurrentMigrationComponent.Schema=SchemaToUse;
CurrentMigrationComponent.Title=标题;
XmlDocument doc=新的XmlDocument();
doc.LoadXml(“”)+
"");
CurrentMigrationComponent.Content=doc.DocumentElement.OuterXml;
字符串newTCMID=client.Create(CurrentMigrationComponent,readoptions).Id;
Console.WriteLine(CurrentMigrationComponent.Id);
Console.ReadLine();
返回newTCMID;
}

项目存在或不存在。它不是用任何你似乎正在经历的“创造环境”的知识来创造的

是否确实在正在查找的同一出版物中创建了该项目?这个项目登记了吗

如果不是这样的话,我建议与我们共享代码的关键部分:可能是创建连接并在其上设置用户凭据的部分(当然要清空实际值)和调用
保存的部分,
Update
CoreServiceClient
上创建方法

更新

你添加的代码在我看来很好。但是,您可能需要检查以下几点:

string newTCMID = client.Create(CurrentMigrationComponent, readoptions).Id; 
Console.WriteLine(CurrentMigrationComponent.Id);
假设您正在创建一个新组件,则带有的
CurrentMigrationComponent
变量的
Id
tcm:0-0-0
。在
newTCMID
中返回的值是多少?如果您搜索该TCM URI(使用GUI中的搜索功能),它会找到什么吗?

当您说“其他机器”时,是指运行核心服务客户端控制台应用程序的其他服务器吗?检查机器是否位于同一网络域中,以及您是否可以从它们连接到Tridion。还要检查是否存在阻止服务器计算机上传出http请求的任何网络策略限制


如果您提供得到的错误输出,这将有所帮助。

请检查app.config文件中的部分,可能是您的端点,也可能是您到本地主机的映射

<client>
            <endpoint address="http://[ur]/webservices/CoreService.svc/basicHttp_2010"
                binding="basicHttpBinding" bindingConfiguration="basicHttp_2010"
                contract="CoreService.ICoreService2010" name="basicHttp_2010" />
            <endpoint address="http://[ur]/webservices/CoreService.svc/streamDownload_basicHttp_2010"
                binding="basicHttpBinding" bindingConfiguration="streamDownload_basicHttp_2010"
                contract="CoreService.IStreamDownload2010" name="streamDownload_basicHttp_2010" />
            <endpoint address="http://[ur]/webservices/CoreService.svc/streamUpload_basicHttp_2010"
                binding="basicHttpBinding" bindingConfiguration="streamUpload_basicHttp_2010"
                contract="CoreService.IStreamUpload2010" name="streamUpload_basicHttp_2010" />
            <endpoint address="http://[ur]/webservices/CoreService.svc/wsHttp_2010"
                binding="wsHttpBinding" bindingConfiguration="wsHttp_2010"
                contract="CoreService.ISessionAwareCoreService2010" name="wsHttp_2010">
                <identity>
                    <dns value="localhost" />
                </identity>
            </endpoint>
        </client>


我已经为ex:-提供了带有服务器URL的服务引用,因此在配置文件中引用localost毫无意义。我已在本地计算机的主机文件中输入了此项。由于TCM URI也使用上述代码从本地机器为所有项目生成,我发现很难找到解决方案。非常感谢您的回复!对我将newTCMID值作为一个新的URI,但当我在Tridion CMS中搜索该URI时,无论是在本地还是在安装了Tridion的服务器上,错误消息都会显示:条目newTCMID不存在,但在服务器计算机上运行时使用相同的代码,我可以找到具有任何newTCMID的条目这似乎表明,不管你怎么认为:组件不是在Tridion CMS上创建的,你的本地副本可能正在与另一个Tridion实例通信。通过根据模式使内容无效(例如更改名称空间或添加无效的XML元素)并看到程序失败,可以最容易地验证这一点。一旦发生这种情况,您将在执行创建操作的机器的事件日志中找到一个事件。我的猜测是,你不会在机器上找到预期出现的事件。除此之外:检查您的端点defFrank,我已尝试根据您的建议调用checkin(),因此我在create()之后添加了以下代码行:-client.checkin(newTCMID,readoptions).Id;但是当这一行执行时,我得到了一个错误,即“项目未签出”。此外,我无法再次创建该名称项,因此它必须在某处创建。我正在尝试实现你的最后一个评论,让我们看看会发生什么。非常感谢您对againI的支持,againI可能忽略了这里的某些内容,但不应该忽略客户端。在某个时候,客户端应该遵循创建。保存?通过保存将新创建的项目提交到DB?除了在dns中(如示例配置),我在其他任何地方都没有“localhost”作为值,请建议我是否需要将dns值更改为“是”,然后更改为什么?提前谢谢。您检查过数据库了吗?该项目是否存在