Add a Web service 2.0 in SharePoint 2007 step by step

Today at my work, I need to implement JQuery in SharePoint on a module. I
need to make AJAX calls to get the data from the database depending on the value
in a text box. So, I choose JQuery, because I know it well and it will take very
less time to implement. But for JQuery I need to create page web methods. But
SharePoint doesn't support Page web methods because SharePoint is completely
built upon ASP.NET 2.0.

So, what is the solution, how can I make a call to the server and get the
data from DB? After thought some time about it, finally I got a brilliant and
better idea of using web services. Please follow the steps below to implement
Web services in SharePoint.

  • We are using client side technologies like JQuery etc to call Web service to
    get the data from server. By default, it is not supported. For that, we need the
    supporting DLL's[System.Web.Script.Services] for the Web service
    script on the SharePoint server. These DLL's are needed to process the web
    service request and send the response[JSON]. For those DLL, you need to install
    the Ajax extensions 1.0.
  • Create a web service using Visual studio. It will generate
    two files webservice.asmx and webservice.cs. Write all the web methods required
    inside the webservice.cs file. I will explain you with an example more detail
    later in this post.
  • Now, we need a location to keep our *.cs [webservice.cs] file. So, for that,
    create App_Code folder in the SharePoint site file system
    virtual directory root [c:\inetpub\…\wss\virtualdirectories\portnumber]. You can
    find the advantages of using App_code folder, in SharePoint web application App_Code folder in SharePoint – Custom web services in SharePoint – Part 1.
  • By default SharePoint won't allow the script handlers and http modules. For
    this reasons, we need to make the web.config changes as
    explained Web.config changes - Custom web services in SharePoint 2007 – Part 2.
  • Change the settings in central admin to remove asmx extension from blocked
    file types. Blocked file types in SharePoint 2007 – Custom web services 2.0 in SharePoint 2007 – Part 3.

After you are ready with all the above steps, then please follow the steps

  • Check the related dll's are added in the system, after installed Ajax
    extensions. Below are the namespaces you required in the webservice.cs file.

    using System.Web.Services;

  • Copy the webservice.asmx file to the SharePoint website virtual directory
    file system path [c:\inetpub\…\wss\virtualdirectories\portnumber\].
  • Copy the file webservice.cs file, and paste it in the app_code folder of the
    SharePoint web site.
  • Please follow the post web.config changes as explained.
  • Central administration changes as explained above.

There we are done with the process. This is really working great and we can
solve really very difficult problems like all scenarios where we need to
communicate with DB without doing post back etc. This is very smooth and fast
way of retrieving results. I like to hear feedback. This is the one of the best
solutions I found. Please post any problems if you face while implementing this