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

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

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

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

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

  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、测试结果,如下图:

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

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

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

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

  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、执行程序,查看调用结果,调用成功获取到了站点的名称!

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

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

画外音

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

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

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

  SharePoint 2013 中自定义WCF服务

  http://www.cnblogs.com/jianyus/p/3586004.html

SharePoint 2013 调用WCF服务简单示例相关推荐

  1. java调用wcf_详解JAVA调用WCF服务的示例代码

    这一篇将要解决java中调用WCF的问题,使用的依旧是上一篇中托管在IIS中的WCF服务,本来我是打算用axis来写这篇文章的,可就在我开始之前,无意中发现了在java包中自带的wsimport工具 ...

  2. 实现在GET请求下调用WCF服务时传递对象(复合类型)参数

    WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章<实现jquery.ajax及原 ...

  3. 实现jquery.ajax及原生的XMLHttpRequest调用WCF服务的方法

    废话不多说,直接讲解实现步骤 一.首先我们需定义支持WEB HTTP方法调用的WCF服务契约及实现服务契约类(重点关注各attribute),代码如下: //IAddService.cs namesp ...

  4. Silverlight同步(Synchro“.NET研究”nous)调用WCF服务

    Silverlight的RIA应用中访问远端的WebService或WCF服务,都是通过异步线程模式调用的.在某些情况下我们的调用是需要同步进行,虽然Silverlight没有内置同步线程模式调用远端 ...

  5. 学习 WCF (6)--学习调用WCF服务的各种方法

    根据不同的情况,我们可以用不同的方法调用WCF服务,本文简单总结了一下调用WCF的一些方法(代理类,Ajax...),分享给大家.开发工具调用WCF 这中方法很方便也很简单,很多工作VS就帮我们完成了 ...

  6. WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]

    原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码 ...

  7. C# 创建、部署和调用WebService的简单示例

    C# 创建.部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice ...

  8. C# 创建、部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互。 概念性的东西就不说太多,下面开始创建一个简单的webservi

    C# 创建.部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice ...

  9. WCF 入门之旅(4): 怎样用客户端调用WCF服务

    WCF 入门之旅(4): 怎样用客户端调用WCF服务 前面的demo已经能够跑起来,现在开始考虑用客户端来测试所写的应用了,首先用个普通的应用程序来调用所写的wcf服务吧.其实最后运行wcf服务后的页 ...

最新文章

  1. RecylerView为item添加点击事件
  2. 区块链入门之基础知识
  3. 几分钟内学习 Clojure
  4. 【机器学习PAI实践二】人口普查统计
  5. leetcode 452. Minimum Number of Arrows to Burst Balloons | 452. 用最少数量的箭引爆气球(左程云:最大线段重合问题)
  6. Sql Server 2005 分页
  7. 违规停放共享单车 319人被纳入限制骑行“黑名单”
  8. Spring Boot 2.2 正式发布,性能大幅提升、Java 13 支持|CSDN博文精选
  9. python界面-(八)Python 图形化界面设计
  10. 宝利通视频会议常见故障
  11. 开源的看板管理工具Wekan
  12. VUE项目学习(三):win10版nginx部署vue项目
  13. 人脸识别App面临的安全风险
  14. VRP_SA-模拟退火
  15. Hadoop详细入门知识
  16. 综述 | 实例分割研究
  17. 【SSL】记录一次PEM转P12证书
  18. Java 中如何过滤 Excel 文件
  19. 数据湖在大数据场景下应用和实施方案调研笔记(增强版)
  20. 微信公众号编辑菜单栏代码

热门文章

  1. 请给SpringBoot多一些内存
  2. 5 门可能衰落的编程语言
  3. 数据读取与数据扩增方法
  4. 从0学人脸识别,我花3小时复现了Eigenfaces For Recognition
  5. 二本学生连发10篇SCI直博香港城大,被质疑「灌水」,本人回应!
  6. 再也不用担心过拟合的问题了
  7. NeurIPS 2020 :ReID任务大幅领先,港中文开源自步对比学习框架,充分挖掘无监督学习样本...
  8. ICLR2020放榜 687篇入选34篇得满分! 且看OpenReview数据图文详解
  9. Python设计模式-解释器模式
  10. 图神经网络方法总结(Graph Neural Network)