我创建了WCF服务并尝试在Sharepoint Web部件中使用它。在部署Web部件时出现以下错误:
“在ServiceModel客户端配置部分找不到引用合同'ServiceReference1.IService1'的默认端点元素”
任何帮助将不胜感激
答案 0 :(得分:3)
你如何消费它?如果您为webpart创建了app.config,那么在w3wp.exe进程的上下文中执行Web部件将无法正常工作。
您必须在Service Client中手动设置端点,或者将其放在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以获取绑定信息,并查看从{{3}派生的类的MSDN找到正确的。
答案 1 :(得分:0)
Micheal Stu8om是对的。您需要复制并粘贴系统的内容。 serviceModel标记从您的webpart配置文件到位于SharePoint部署根目录中的SharePoint web.confi(Michael的帖子中的最后一段路径并不总是80.它可能是443或其他东西,具体取决于SharePoint部署端口)。
我想推荐阅读Sahil Malik“构建SharePoint 2010解决方案”一书的第5章。 希望这有帮助