In SharePoint 2010 Out of the box all the Lists are exposed as WCF Restful Service using OData Protocol. Here is path or URL to access SharePoint Lists WCF Restful Services . http://ServerName/_vti_bin/ListData.svc. The following screenshot shows the collections of List from my SharePoint site.
In this blog post we are going to see how to host Custom WCF service Inside SharePoint 2010 and we will consume the same service from Silverlight client . Up front we know that we are going to call this WCF service from Silverlight so i am going to host this service in basicHttpBinding.
First create a empty SharePoint project.
Now we need to provide the site where you wanted to host this WCF service and how we are going to deploy it either SandBox or Server Farm. Here i am going to choose Farm solution.
Once the project is successfully created. Now we need to Add SharePoint ISAPI Mapping folder. To do this right clicking the project and choose the SharePoint Mapped Folder as shown below.
Adding /Mapping SharePoint ISAPI Folder.
Now add C# Interface file and Class File to define the WCF Service Contract and Service implementation. and also we need to add .svc and web.config file to host the service.
Simple WCF Service Contract:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Microsoft.SharePoint;
namespace WCFSVCINSHAREPOINT
{
[ServiceContract]
public interface ICustomService
{
[OperationContract]
string GetTime();
}
}
Service Implementation
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Microsoft.SharePoint;
using System.ServiceModel.Activation;
namespace WCFSVCINSHAREPOINT
{
[ServiceBehavior]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class CustomService : ICustomService
{
public string GetTime()
{
return DateTime.Now.ToString();
}
}
}
.SVC file
You can use .NET Reflector to get the following ServiceHost attributes PublicKeyToken , Assembly Type name, Version. But i used the Strong name (SN.EXE ) Utility to get all the above attributes . Here is the sample how to use SN.EXE
Web.Config file
Now Fire up the IE and Browse the WCF Service. [Note: Make sure that your SharePoint Site has Anonymous access as Shown below.]
Next Blog post we will see how to call this Service from Silverlight Client.
Nandri(Thanks)
SreenivasaRagavan
6 comments:
Great post! Perhaps in the future you could make that web.config file not an image so we can copy and paste it easier? :) Keep up the good work.
for mexHttpBinding, where does the baseaddress comes from in the web.config file ?
Question :
How did sharepoint 44119 get defined ?
HOw is your wcf getting added to this location ?
Thanks, Peter
WOW! Its awesome.. I really appreciate this post. I hope to see more post from you sooner.
Hi,
How did you come up with in baseAddressweb.config ? Please let me know. Thanks
Post a Comment