SharePoint 2013 调用WCF服务简单示例

  内容比较简单,主要记录自己使用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

时间: 2024-08-31 04:14:28

SharePoint 2013 调用WCF服务简单示例的相关文章

SharePoint 2013 Search REST API 使用示例

原文:SharePoint 2013 Search REST API 使用示例 前言:在SharePoint2013中,提供Search REST service搜索服务,你可以在自己的客户端搜索方法或者移动应用程序中使用,该服务支持REST web request.你可以使用KeyWord Query Language(KQL)或者FAST Query Language(FQL)来对Search REST Service进行搜索查询,并且,试用与远程客户端应用程序.移动应用程序和其他应用程序.

jQuery ajax调用WCF服务实例_jquery

恩,在由瘦客户端转换成胖浏览器端的"潮流"下,必然要使用JavaScript调用后台的各种服务. 屌丝所维护的产品通信都是使用的WCF服务,因此必然要学习这样的内容.借用jQuery强大的库,使用JavaScript访问WCF服务非常简便.同事研究了一个breeze库,那么屌丝就来试验一下ajax.这里把实现简单地记录以便马克一下,以后忘了就看这篇日志来作弊. 一.更改WCF服务的配置 默认情况下,WCF服务是不允许使用HTTP请求来访问的.我们需要将WCF服务的配置文件(注意如果有其

jQuery Ajax调用WCF服务详细教程_jquery

这两天在写基于WCF服务的后台框架,过程中遇到了一些挫折,经过努力全部解决了,在此分享给大家,使用的工具是Visual Studio 2013. 该后台需要支持通过json来传递和接收数据. 首先,说说搭建过程. 第一步:创建WCF服务应用程序项目WCF. 第二步,创建服务使用的数据类 using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Sch

jQuery实现ajax调用WCF服务的方法(附带demo下载)_jquery

本文实例讲述了jQuery实现ajax调用WCF服务的方法.分享给大家供大家参考,具体如下: 关于AJAX调用WCF服务分为跨域和不跨域两种方式,今天咱们先介绍下不跨域下的调用方法.DEMO是在VS2008写的. 经过测试与研究,发现AJAX调用WCF服务必须满足以下条件 1.wcf的通讯方式必须使用webHttpBinding 2.必须设置<endpointBehaviors>节点的值 3.服务的实现必须添加标记 复制代码 代码如下: [AspNetCompatibilityRequirem

如何在调用WCF服务之前弹出一个确认对话框?

昨天有人在微博上问我如下一个问题: 老蒋,客户端调用wcf的一个接口函数时,有没有什么办法可以先弹出一个确认框,确认后再执行调用.因为这个接口函数再很多地方都执行了调用,所以我想在某个入口进行统一地弹出一个确认框... 其实这个问题可以通过WCF的扩展来完成,具体来说这个扩展涉及到一个我们不太常用的组件"InteractiveChannelInitializer",在我的<WCF全面解析>中对它有过概括性的介绍.InteractiveChannelInitializer实现

Silverlight同步(Synchronous)调用WCF服务

Silverlight的RIA应用中访问远端的WebService或WCF服务,都是通过异步线程模式调用的.在某些情况下我们的调用是需要同步进行,虽然Silverlight没有内置同步线程模式调用远端服务接口,但是我们可以通过多线程的处理来伪装出同步调用的实现.在.NET Framework的多线程编程中提供了丰富的线程接口,其中AutoResetEvent和ManualResetEvent在多线程编码中最为常用,本文将介绍如何通过AutoResetEvent的线程等待特性实现Silverlig

一起谈.NET技术,Silverlight同步(Synchronous)调用WCF服务

Silverlight的RIA应用中访问远端的WebService或WCF服务,都是通过异步线程模式调用的.在某些情况下我们的调用是需要同步进行,虽然Silverlight没有内置同步线程模式调用远端服务接口,但是我们可以通过多线程的处理来伪装出同步调用的实现.在.NET Framework的多线程编程中提供了丰富的线程接口,其中AutoResetEvent和ManualResetEvent在多线程编码中最为常用,本文将介绍如何通过AutoResetEvent的线程等待特性实现Silverlig

iPhone中调用WCF服务

由于对移动平台充满着好奇与兴趣,最近着手了iPhone开发的学习.学习的路线是从objective-c到cococa.方法是看了两本入门的英文书,还有就是学习apple的sdk.对于产品的基本想法是服务端用.net,手机客户端用iPhone. 一些复杂的逻辑处理放到服务端实现,客户端与服务端通过XML交互,在iPhone客户端解析XML通过cocoa展示数据.由于iPhone和DoNet是两个完全不同的平台.iPhone依靠mac系统平台,donet依赖windows系统平台.这篇文章我将通过一

iPhone中调用WCF服务“.NET研究”

由于对移动平台充满着好奇与兴趣,上海网站建设最近着手了上海闵行企业网站制作iPhone开发的学习.学习的路线是从objective-c到cococa.方法是看了两本入门的英文书,还有就是学习apple的sdk.对于产品的基本想法是服务端用.net,手机客户端用iPhone. 一些复杂的逻辑处理放到服务端实现,客户端与服务端通过XML交互,在iPhone客户端解析XML通过cocoa展示数据.由于iPhone和DoNet是两个完全不同的平台.iPhone依靠mac系统平台,donet依赖windo