0

我正在开发一个 SharePoint 2013 webpart,并且 webpart 上的标签需要使用 WCF 与 SQL Server 数据表进行通信。我已经创建了 WCF 接口和主类,并且还在我的 Visual webpart 中调用了该服务,如下所示:

protected void Page_Load(object sender, EventArgs e)
    {
        WcfServiceReference1.Service1Client client = new WcfServiceReference1.Service1Client();
        CustomerNameLbl.Text = client.GetCustomerName(ProjectIDDescLbl.Text);
    }

其中 WcfServiceReference1 是添加的 WCF 服务引用,并且根据项目编号标签更改客户标签文本。该项目可以正常构建和部署,但是当我添加 Web 部件时,出现此错误:在 ServiceModel 客户端配置部分中找不到引用合同“WcfServiceReference1.IService1”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此协定匹配的端点元素。

我的 app.config 文件是这样的:

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IService1" />
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://as-sv-dev02:2345/Service1.svc" binding="basicHttpBinding"
            bindingConfiguration="BasicHttpBinding_IService1" contract="WcfServiceReference1.IService1"
            name="BasicHttpBinding_IService1" />
    </client>
</system.serviceModel>

而 web.config 文件(用于 SharePoint)是这样的:

<system.serviceModel>
<bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IService1" />
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://as-sv-dev02:2345/Service1.svc" binding="basicHttpBinding"
            bindingConfiguration="BasicHttpBinding_IService1" contract="WcfServiceReference1.IService1"
            name="BasicHttpBinding_IService1" />
    </client>

谁能指导我如何解决这个问题?我在某个地方出错了吗?

4

3 回答 3

1

经过大量研究,我发现 SharePoint 存在一些我不太了解的问题。幸运的是,及时,我选择不采用 SharePoint 方式,而是使用简单的 .aspx 页面,这样就可以解决问题。只是对微软没有在这些常见问题上提供尽可能多的支持感到不满。

于 2013-09-10T18:42:05.403 回答
1

我有同样的问题,我找到了这个链接。

http://social.technet.microsoft.com/Forums/en-US/dea0763d-d6ea-4659-8ef0-8275514d066a/sp2010-sumption-web-service-in-visual-web-part?forum=sharepointdevelopmentprevious

我做到了并且工作得很好。问题是部署不会将服务模型配置从 Visual Studio 的 app.config 复制到 IIS 的 web.config。

我希望有所帮助。

此致。

于 2013-10-09T20:48:01.453 回答
0

您的客户端端点似乎没有默认配置(name="" 或无名)。尝试使用:

WcfServiceReference1.Service1Client client = new WcfServiceReference1.Service1Client("BasicHttpBinding_IService1");
于 2013-09-03T04:10:05.970 回答