欧非资源网:安全、免费、专业放心的资源下载站! 最新软件|软件分类

您的位置:欧非资源网 > 其他专区 > SharePoint > SharePoint 调用WCF服务实现实例教程

SharePoint 调用WCF服务实现实例教程

时间:2020-01-07 21:20作者:admin来源:未知人气:274我要评论(0)

内容比较简单,主要记录自己使用SharePoint 2013WCF服务遇到的小问题和小经验,分享给大家,希望能够给需要的人有所帮助。好吧,进入正题!

第一部分 SharePoint 2013调用自带WCF服务

  1、在创建好的测试项目中(控制台程序),在引用上右键添加服务引用,如下图:

clip_image001

  2、填写WCF的服务地址和命名空间,完毕后点击转到,如果服务没有开匿名,可能需要输入用户名和密码,如下图:

clip_image002

  3、点击转到并输入用户名密码,稍等片刻,即可找到WCF服务,然后点击确定即可将服务添加到引用,如下图:

clip_image003

  4、添加调用WCF服务的代码,这里代码很简单,就是获取List中的数据:

复制代码
public static void GetListDate()
{
    //创建WCF服务
    Uri url = new Uri("http://serverurl/_vti_bin/ListData.svc");
    ListDataService.开发人员网站DataContext datacontent = new ListDataService.开发人员网站DataContext(url);
    //给WCF服务授权
    NetworkCredential nc = new NetworkCredential("username", "password", "domain");
    datacontent.Credentials = nc;
    //获取数据,AppInstallLogs为列表
    var itemcoll = datacontent.AppInstallLogs;
    foreach (var item in itemcoll)
    {
        Console.WriteLine("ID:{0} - 标题:{1}", item.Id, item.标题);
    }
}
复制代码

  5、测试结果,如下图:

clip_image004

  以上就是SharePoint 2013 WCF的简单调用,本文只是一个调用的例子,没有更加深入的讲解。

第二部分 SharePoint 2013调用自定义WCF服务

  下面,介绍自定义WCF的简单调用,其实代码都比较简单,只是授权的时候,有点纠结,自己搞了一下午,才发现问题,现在趁着有空,拿出来跟大家分享。添加引用的地方,和引用SharePoint自带的WCF服务是一样的步骤,这里就不多说了,直接调用了。

  6、如下图,可以看到我们的服务,还有服务里面包含的操作

clip_image005

  7、调用WCF的方法,微软上的说明是先设置代理,然后设置为NTLM,再调用WCF服务,给WCF服务授权,即可调用SharePoint自定义的WCF;

复制代码
public static void GetWebTitle()
{
    //设置代理
    BasicHttpBinding myBinding = new BasicHttpBinding();
    myBinding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
    myBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;
    EndpointAddress ea = new EndpointAddress(http://serverurl/_vti_bin/GetWebTitle/GetWebTitle.svc);
    //WCF服务的方法调用
    GetWebTitleService.GetWebTitleClient up = new GetWebTitleService.GetWebTitleClient(myBinding, ea);
    up.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
    //和注释的两种授权方式,都可以
    NetworkCredential nc = new NetworkCredential("username", "password", "domain");
    up.ClientCredentials.Windows.ClientCredential = nc;
    //up.ClientCredentials.Windows.ClientCredential.UserName = "domainusername ";
    //up.ClientCredentials.Windows.ClientCredential.Password = "password";
    Console.WriteLine("WCF调用结果:" + up.GetSPWebTitle("http://weburl", ""));
}
复制代码

  8、执行程序,查看调用结果,调用成功获取到了站点的名称!

clip_image006

  特:这个WCF服务是上一篇博客中定义的,有兴趣查看的请参考附后的链接,谢谢!

  9、特别想说的是,如果不设置代理会报如下错误,解决了一下午才发现问题所在;

clip_image007

画外音

  看到如上图的401错误,自己就想到是WCF服务的认证出了问题,因为之前调用WebService的时候,都是通过授权调用的,很奇怪这个没有授权方式;

  后来,经过不断的找资料,发现了授权的两种方式(上面代码使用的和注释掉的),但是依然401错误,后来发现需要设置代理,具体原理自己也不十分清楚,如果有非常了解WCF的看到,希望可以给我留言,如果以后我发现了原理,也会及时补充过来!

  本文只是简单介绍WCF的调用过程,内容比较简单,算是对之前遇到问题的一个简单总结,也希望能够给需要使用的人以帮助。

相关阅读 SharePoint中Office文件无法打开的解决方案如何快速生成SharePoint测试大文件如何查询SharePoint Library中空文件夹?如何快速备份SharePoint Farm Solution如何解决Event Viewer中SharePoint Error - Event ID 8321SharePoint 2016 CU安装失败,"Exception: The upgraded database schema doesn't match the TargetSchema"的解决方案InfoPath Error “此文档库已经被重命名或删除,或者网络问题导致文件无法保存…” 的解决方案SharePoint 2013 App概述How to Shrink SharePoint Content Database Log File?Project Web App Feature无法开启的解决方案

文章评论
发表评论

热门文章 SharePoint 2016 图文安装教程 后面有激活序列号、密钥分享[SharePoint入门教程]一SharePoint发展、工具及术语如何用 SharePoint Online创建团队网站?SharePoint Iframe 报错“此内容不能显示在一个框架中”

最新文章 SharePoint中Office文件无法打开的解决方案如何快速生成SharePoint测试大文件 如何查询SharePoint Library中空文件夹?如何快速备份SharePoint Farm Solution如何解决Event Viewer中SharePoint Error - Event ID 8321SharePoint 2016 CU安装失败,"Exception: The upgraded database s

人气排行 SharePoint 2016 图文安装教程 后面有激活序列号、密钥分享[SharePoint入门教程]一SharePoint发展、工具及术语如何用 SharePoint Online创建团队网站?SharePoint Iframe 报错“此内容不能显示在一个框架中”SharePoint 2013 安装图解 SharePoint安装步骤图解教程SharePoint 如何开启访问请求[SharePoint入门教程]一SharePoint概述[SharePoint入门教程]一创建SharePoint母版页

盖楼回复X

(您的评论需要经过审核才能显示)