设为首页 收藏本站
查看: 863|回复: 0

[经验分享] SharePoint 2013 调用WCF服务简单示例

[复制链接]

尚未签到

发表于 2015-9-29 10:00:02 | 显示全部楼层 |阅读模式
  内容比较简单,主要记录自己使用SharePoint 2013WCF服务遇到的小问题和小经验,分享给大家,希望能够给需要的人有所帮助。好吧,进入正题!

第一部分 SharePoint 2013调用自带WCF服务
  1、在创建好的测试项目中(控制台程序),在引用上右键添加服务引用,如下图:
DSC0000.png
  2、填写WCF的服务地址和命名空间,完毕后点击转到,如果服务没有开匿名,可能需要输入用户名和密码,如下图:
DSC0001.png
  3、点击转到并输入用户名密码,稍等片刻,即可找到WCF服务,然后点击确定即可将服务添加到引用,如下图:
DSC0002.png
  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、测试结果,如下图:
DSC0003.png
  以上就是SharePoint 2013 WCF的简单调用,本文只是一个调用的例子,没有更加深入的讲解。

第二部分 SharePoint 2013调用自定义WCF服务
  下面,介绍自定义WCF的简单调用,其实代码都比较简单,只是授权的时候,有点纠结,自己搞了一下午,才发现问题,现在趁着有空,拿出来跟大家分享。添加引用的地方,和引用SharePoint自带的WCF服务是一样的步骤,这里就不多说了,直接调用了。
  6、如下图,可以看到我们的服务,还有服务里面包含的操作
DSC0004.png
  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 = "domain\\username ";
//up.ClientCredentials.Windows.ClientCredential.Password = "password";
Console.WriteLine("WCF调用结果:" + up.GetSPWebTitle("http://weburl", ""));
}
  8、执行程序,查看调用结果,调用成功获取到了站点的名称!
DSC0005.png
  特:这个WCF服务是上一篇博客中定义的,有兴趣查看的请参考附后的链接,谢谢!
  9、特别想说的是,如果不设置代理会报如下错误,解决了一下午才发现问题所在;
DSC0006.png
  画外音
  看到如上图的401错误,自己就想到是WCF服务的认证出了问题,因为之前调用WebService的时候,都是通过授权调用的,很奇怪这个没有授权方式;
  后来,经过不断的找资料,发现了授权的两种方式(上面代码使用的和注释掉的),但是依然401错误,后来发现需要设置代理,具体原理自己也不十分清楚,如果有非常了解WCF的看到,希望可以给我留言,如果以后我发现了原理,也会及时补充过来!
  
  本文只是简单介绍WCF的调用过程,内容比较简单,算是对之前遇到问题的一个简单总结,也希望能够给需要使用的人以帮助。
  
  SharePoint 2013 中自定义WCF服务
  http://www.cnblogs.com/jianyus/p/3586004.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-120312-1-1.html 上篇帖子: Sharepoint/moss 中文电子审批流程 下篇帖子: SharePoint 2010配置PDF文件全文检索
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表