9

尝试在我的 ASP.NET 应用程序中添加对 /linking.svc 的服务引用时收到以下错误:

下载时出错http://localhost:82/linking.svc/。请求失败,HTTP 状态为 404:未找到。元数据包含无法解析的引用:http://localhost:82/linking.svc/。没有http://localhost:82/linking.svc/可以接受消息的端点监听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。远程服务器返回错误:(404) Not Found。如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

我认为我可以像使用 odata(在 Visual Studio 中添加服务引用)一样使用链接服务,因为 odata 对我来说很好用。我检查了我的服务安装的 web.config 并且两个端点看起来都配置正确。

<!-- HTTP support -->
        <service name="Tridion.ContentDelivery.Webservice.ODataService">
            <endpoint behaviorConfiguration="webHttp" bindingConfiguration="HttpBinding" binding="webHttpBinding" contract="Tridion.ContentDelivery.Webservice.IODataService" />
        </service>
        <service name="Tridion.ContentDelivery.Webservice.LinkingService">
            <endpoint behaviorConfiguration="webHttp" bindingConfiguration="HttpBinding" binding="webHttpBinding" contract="Tridion.ContentDelivery.Webservice.Ilinking" />
        </service>
        <service name="Tridi

我假设我试图以不正确的方式使用 linking.svc。

我的问题...我是否遵循在 Visual Studio ASP.NET 项目中使用 linking.svc 服务的正确程序?如果没有,请您帮助我了解如何使用此 api。

非常感谢

4

2 回答 2

6

您是否考虑为链接服务编写自己的客户端?这是一个非常简单的 REST-ful Web 服务,因此您可以使用标准访问它WebClient

来自 Mihai Cadaru 的一个例子:

WebClient client = new WebClient();
string linkingServiceUrl = "http://tridion.server:8080/services/linking.svc";
string COMPONENT_LINK = "/componentLink?sourcePageURI={0}&targetComponentURI={1}&excludeTemplateURI={2}&linkTagAttributes={3}&linkText={4}&showTextOnFail={5}&showAnchor={6}";
string url = linkingServiceUrl +
    string.Format(COMPONENT_LINK,
    sourcePageUri,
    targetComponentUri,
    excludeTemplateUri,
    HttpUtility.UrlEncode(linkTagAttributes),
    HttpUtility.UrlEncode(linkText),
    showTextOnFail,
    showAnchor);
return client.DownloadString(url);
于 2012-09-05T17:45:23.060 回答
2

您是否阅读过这里的文档(需要登录):

http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/reference_277A2D7264B04A39870C3FE18EF245BB

于 2012-09-05T17:32:38.527 回答