Friday 30 October 2009

Development: Troubleshoot your #SharePoint custom Web services

When I first read the W3C definition of a Web service back at university, I admit that it made little sense to me:

"a software system designed to support interoperable machine-to-machine interaction over a network...using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards".

How does one go about writing "SOAP-messages"? Would I have to serialise the XML myself? It all sounded rather daunting and, like most other students I settled for memorising the definition and a few benefits of using Web services.

However, having been employed as a SharePoint administrator come developer for some time now, I am pleased to say that writing a Web service, even one that is to be used in the context of WSS isn't all that difficult. As with most developments tasks that are worth doing (this one certainly is), there are numerous hoops that must be jumped through, most of which are documented in the Microsoft articles below. Note that bar editing a few XML statements so as to account for SharePoint virtualising its URLs (a lot simpler than it sounds - just follow the instructions), there is no need to get your hands dirty with serialization or SOAP (that's impossible with soap anyway, right?)


OK, so Web services that operate in the context of SharePoint foundation are not new. There are numerous tutorials available online that are very helpful such as Creating a Custom Web Service for SharePoint.

However, having spent a few frustrating hours with a number of recurring Web service issues, I thought it would be worthwhile sharing them with the world (or at least those that read this blog). If you are having issues deploying or consuming a custom Web service, I recommend you ask yourself the following questions:

Ask yourself
  • Have you created ASPX pages for the .disco and .wsdl files with syntactically correct virtualised URLs?
  • Is the updated Web service DLL in each SharePoint WFE GAC?
  • If relevant, is the updated Web service DDL in your SharePoint Web application bin folder with correct NTFS permissions?
  • Are the new DISCO, WSDL and ASMX files in the ISAPI folder with correct NTFS permissions?
  • Can you browse the web service at https://application.domain.com/_vti_bin/webservicename.asmx?
  • Does the Web service work as a console application?
  • Are your custom application settings (e.g. web.config) settings correct?
  • Is the problem really because of your Web service?
Note that although these common issues are based on my experiences with MOSS, I have taken a quick look through the 2010 walkthrough and there doesn't appear to be a lot of difference between the two processes. Please let me know if you have encountered a "common issue" that I haven't listed (MOSS or SP2010).

Good luck! I hope you enjoy consuming your new custom SharePoint Web service and the benefits that go with it. That includes code re-use, versatility and interoperability which hopefully leads to some form of cost saving for you and your organisation.

Subscribe to the RSS feed

Follow me on Twitter

Follow my Networked Blog on
Facebook

Add this blog to your
Technorati Favourites

1 comment:

  1. I'm truly grateful for these troubleshooting techniques! Well, I'm doing a research regarding SharePoint Custom web services for the purpose of helping my brother gather information for his school paper. The topics the he wants me to research also include web design, web services architecture, and the different kinds of web templates.

    Thanks for sharing, Benjamin! I'll take note of your blog for future references.

    ReplyDelete