SharePoint 2013 中自定义WCF服务
在使用SharePoint2013的时候,如果其他客户端 API 的组合不足,可以通过自定义 Web 服务扩展 SharePoint。默认情况下,SharePoint 2013 不仅支持创建自定义 ASP.NET Web 服务,还支持创建自定义 WCF Web 服务。
在开始之前,简单描述一下创建自定义WCF服务的步骤:
Ø创建SharePoint空项目,选择场解决方案
Ø添加相关的应用程序集引用
Ø创建相关类和接口类,为其添加源代码
Ø创建ISAPI文件夹映射,在里面添加svc文件,并映射cs后台代码
Ø修改.csproj的程序文件,添加对于svc类型的支持
好了,让我们通过图文,了解SharePoint 2013中自定义WCF服务吧,可能描述较少,图文较多,因为创建的过程比较简单,示例代码也比较简单,主要还是创建的过程。
1、新建SharePoint空项目,如下图:

2、选择“部署为场解决方案”,如下图:

3、在我们的项目上,右键,添加新项,选择“常规 – 文本文件”,如下图:
使用以上方式,在项目中分别添加GetWebTitle.cs和IGetWebTitle.cs,作为WCF的服务和接口类;

添加完毕,如下图:

4、为项目添加ISAPI文件夹的映射,在项目上右键 – 添加 – SharePoint文件夹映射,选择ISAPI,点击确定,这一步比较简单,就不截图了;
添加ISAPI文件夹映射,在文件夹上右键 - 添加 - 选择文件夹,添加完毕后重命名为GetWebTitle;
添加GetWebTitle文件夹完毕以后,仿照步骤3在该文件夹下,添加GetWebTitle.svc文件,都添加完毕后的文件夹目录如下图所示:

5、为项目添加Microsoft.SharePoint.Client.ServerRuntime.dll的引用,当然,如果你的项目中已经存在这个引用,就可以忽略此步:
2010版本位置如下
%Windows%\assembly\GAC_MSIL\Microsoft.SharePoint.Client.ServerRuntime
2013版本的位置有所变动,如下
%Windows%\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SharePoint.Client.ServerRuntime
同时,为项目添加System.Runtime.Serialization 和 System.ServiceModel的引用,具体位置在单击“添加引用”,然后在“程序集 – 框架”选项卡上;
6、为IGetWebTitle.cs添加代码,如下:

7、为GetWebTitle.cs添加代码,如下:

8、为GetWebTitle.svc关联一下程序集,如下图:

9、都搞定了,可以部署一下,部署后位置如下图:

10、然后,右键这个文件,预览一下,可能会报错,是因为需要添加解决方案对SVC文件的支持,将项目卸载,编辑项目文件,如下图,添加支持svc类型文件:

11、再次访问这个WCF服务,如下图:

总 结
经过上面步骤,已经完成了SharePoint 2013中添加自定义WCF服务,WCF开发部分不是本文重点,所以也没有详细介绍源码,主要还是介绍在SharePoint解决方案中,封装WCF服务,特别要说,这样封装的WCF服务和SharePoint自带的基本相似。
好了,文章比较简单,希望能够需要的人带来帮助。特别附参考链接给大家,里面有详细介绍代码部分,是SharePoint 2010版本,和2013版本基本一样,但是没有截图参考,看起来比较纠结,呵呵。
参考链接
http://msdn.microsoft.com/zh-cn/library/ff521581.aspx
SharePoint 2013 中自定义WCF服务的更多相关文章
- SharePoint 2013中规划企业搜索体系结构
摘要:了解如何规划小型.中型或大型企业搜索体系结构. 设置企业搜索体系结构之前,需要仔细规划很多事项.我们将逐步帮助您规划小型.中型或大型企业搜索体系结构. 您是否熟悉 SharePoint 2013 ...
- SharePoint 2013 关于自定义显示列表表单的bug
1.在SharePoint 2013中,我们隐藏列表Dispform页面的ListFormWebPart部件,转而使用自定义显示列表表单进行展示,因为这样更容易定制我们需要的显示: 2.之后发现文件夹 ...
- SharePoint 2013中的爬网最佳做法
了解在 SharePoint Server 2013 中爬网的最佳做法 搜索系统对内容进行爬网,以构建一个用户可以对其运行搜索查询的搜索索引.本文包含有关如何最有效地管理爬网的建议. 本文内容: 使用 ...
- 在 SharePoint 2013 中配置 Office Web Apps
原文发布于 2012 年 7 月 23 日(星期一) 如您所知或您即将知道,SharePoint 2013 中的 Office Web Apps 不再是 SharePoint 场中的服务应用程序.相反 ...
- [MSDN] 使用 SharePoint 2013 中的 JavaScript 库代码完成基本操作
MSDN:http://msdn.microsoft.com/zh-cn/library/jj163201.aspx 了解如何编写代码以在 SharePoint 2013 中使用 JavaScript ...
- SharePoint 2013 配置启用搜索服务
原文:SharePoint 2013 配置启用搜索服务 1.安装完毕SharePoint 2013,新建网站集,点击搜索,出现如下错误(因为没配置,别激动). 2.尝试启动服务器场中的服务之Share ...
- SharePoint 2013 中的 URL 和标记
SharePoint 2013 中的 URL 的类型 SharePoint 2013 分析 URL 字符串以基于指定的协议(例如,http:)确定 URL 的格式或确定正 ...
- 在 SharePoint 2013 中针对地理位置字段创建地图视图
在 SharePoint 2013 中针对地理位置字段创建地图视图 了解如何通过在 SharePoint 2013 列表中使用地图视图来显示位置信息.您可以通过 SharePoint 用户界面 (UI ...
- SharePoint 2013中以其他用户身份登录的WebPart(免费下载)
在SharePoint 2013中微软并没有提供在SharePoint 2010中以其他用户身份登录的菜单,这对一般用户影响不大,但对于系统管理员或测试人员或特定人员(如在OA系统中的文员或秘书,常常 ...
随机推荐
- win10如何将此电脑显示在桌面
一.问题的提出 计算机系统彻底只能用win10的时候,习惯我的电脑显示在桌面上,可是系统并不默认这样 二.问题的解决 1.win10系统的桌面是没有“我的电脑”的图标,在桌面上点击右键,选择“个性化” ...
- eclipse中对项目进行分类管理
我们在用Eclipse开发的时候通常会建很多类型的项目,如公司项目.自己项目.Demo等等,并且一个项目又可能有一个主项目和多个引用包,如果包所有的项目都放到一个workspace下面,则会引起混来, ...
- 程序设置横屏后,锁屏时会被销毁一遍,解锁时又重新加载onCreat的问题解决
今天在写一个应用的时候,因为需要设置成横屏模式,所以在Manifest里面的Activity里面加了两个参数设置: android:screenOrientation="landscape& ...
- AC_Dream 1216 G - Beautiful People
题意:有n个人每人有一个力气值Si,美丽值Bi,满足Bi>Bj&&Si>Sj 或者 Bi<Bj&&Si<Sj 的人可以一起参见晚会,问最多有多少 ...
- 编写高质量JS代码的68个有效方法(三)
[20141030]编写高质量JS代码的68个有效方法(三) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- MMM和MHA的对比和应用(PPT分享)
分享主题:MySQL高可用架构 --- MMM&MHA在大众点评应用和改进 内容简介:本次演讲,主要讲述以下几个方面 1. MMM在点评网是如何使用的 2. 细数MMM上踩过的坑以及如何填坑 ...
- java抽象类和接口区别
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- SystemTap知识(一)
SystemTap是一个系统的跟踪探测工具.它能让用户来跟踪和研究计算机系统在底层的实现. 安装SystemTap需要为你的系统内核安装-devel,-debuginfo,-debuginfo-com ...
- [转]AutoResetEvent 与 ManualResetEvent区别
在C#多线程编程中,这两个类几乎是不可或缺的,他们的用法/声明都很类似,那么区别在哪里了? Set方法将信号置为发送状态 Reset方法将信号置为不发送状态 WaitOne等待信号的发送 其实,从名字 ...
- JavaScript 面向对象继承详解
题记 由于js不像java那样是完全面向对象的语言,js是基于对象的,它没有类的概念.所以,要想实现继承,一般都是基于原型链的方式: 一.继承初探 大多数JavaScript的实现用 __proto_ ...