三沣开发知识 购物 网址 游戏 小说 歌词 地图 快照 开发 股票 美女 新闻 笑话 | 汉字 软件 日历 阅读 下载 图书馆 编程 租车 短信 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题
autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程 CSS/HTML/Xhtml
html5 CSS XML/XSLT Dreamweaver教程 经验交流 开发者乐园 Android开发资料
站长资讯 .NET新手 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA VisualStudio ASP.NET-MVC .NET控件开发 EntityFramework WinRT-Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动 Html-Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP OracleERP DynamicsCRM K2 BPM 信息安全 企业信息 Android开发 iOS开发 WindowsPhone WindowsMobile 其他手机 敏捷开发 项目管理 软件工程 SQLServer Oracle MySQL NoSQL 其它数据库 Windows7 WindowsServer Linux
  IT知识库 -> SharePoint -> SharePoint 2013 调用WCF服务简单示例 -> 正文阅读
 

[SharePoint]SharePoint 2013 调用WCF服务简单示例

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
  SharePoint 最新文章
SharePoint 2013 Workflow Manager 1.0 卸载
SharePoint 2013 Workflow Manager 1.0 远程
SharePoint 2010 使用Install
SharePoint Online 创建和使用栏
SharePoint 2010管理中心服务器提示“需要升
SharePoint Online 创建资产库
SharePoint 2016 配置用户请求应用程序
QuickFlow UI 控件之 NamedFormAttachment
Power BI数据网关
SharePoint 2013 PowerShell命令备份还原报
上一篇文章      下一篇文章      查看所有文章
加:2015-03-30 07:09:19  更:2017-05-16 16:22:32 
 
技术频道: 站长资讯 .NET新手区 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA Visual Studio ASP.NET MVC .NET控件开发 Entity Framework WinRT/Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动设计 Html/Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP Oracle ERP Dynamics CRM K2 BPM 信息安全 企业信息化其他 Android开发 iOS开发 Windows Phone Windows Mobile 其他手机开发 敏捷开发 项目与团队管理 软件工程其他 SQL Server Oracle MySQL NoSQL 其它数据库 Windows 7 Windows Server Linux
脚本语言: vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程
网站开发: CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流 开发者乐园 Android开发资料
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年4日历
2018-4-20 9:08:29
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT知识库