【问题标题】:Consuming WCF Service in Sharepoint web part在 Sharepoint Web 部件中使用 WCF 服务
【发布时间】:2011-02-23 05:50:18
【问题描述】:

我创建了 WCF 服务并尝试在 Sharepoint Web 部件中使用它。部署 Web 部件时出现以下错误:

“在 ServiceModel 客户端配置部分中找不到引用合同‘ServiceReference1.IService1’的默认端点元素”

任何帮助将不胜感激

【问题讨论】:

    标签: sharepoint-2010 wcf


    【解决方案1】:

    你如何消费它?如果您为 Web 部件创建了 app.config,则该配置将不起作用,因为 Web 部件是在 w3wp.exe 进程的上下文中执行的。

    您必须在服务客户端中手动设置端点,或者将其放在 Sharepoint 虚拟目录的 web.config 中(我认为是 c:\inetpub\wwwroot\wss\80)。如果您有多个服务器,请将其添加到所有服务器中。 (我建议创建一个修改 web.config 的功能接收器,但我学到了永远不应该使用 SPWebConfigModification 的艰难方法)

    以编程方式设置客户端:

    var endpoint = new EndpointAddress(new Uri("http://your/wcf/endpoint"));
    var binding = new WSHttpBinding();
    var client = new YourWCFClient(binding, endpoint);
    

    确切的绑定当然取决于您的配置 - WCF 在这里有点棘手,但如果您已经有一个工作客户端,请检查它的 app.config 以获取绑定信息,并检查 MSDN 以获取从 System.ServiceModel.Channels.Binding 派生的类找到正确的。

    【讨论】:

    • 我还是不清楚。您可以显示在服务客户端中设置端点的示例/链接吗?
    • @pleasehelp 添加了一个示例,但确切的语义取决于您使用的内容。如果您还没有工作的 WCF 客户端,请先将其构建为控制台或 WinForms 应用程序。
    【解决方案2】:

    Micheal Stu8om 是正确的。您需要复制并粘贴系统的内容。从您的 webpart 配置文件到位于 SharePoint 部署根目录中的 SharePoint web.conf 中的 serviceModel 标记(Michael 帖子中的最后一位路径并不总是 80。它可能是 443 或其他取决于 SharePoint 部署端口)。

    我想推荐阅读 Sahil Malik 书籍“为 SharePoint 2010 构建解决方案”的第 5 章。 希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 2011-10-30
      • 2016-01-31
      相关资源
      最近更新 更多