Dear visitor, thanks for stopping by! If you want, you can follow all updates on Snowball.be via RSS. You can also follow me on Twitter or Facebook. More interesting posts from other Microsoft Regional Directors can be found at The Region.
Gill Cleeren     ADO.net     October 12, 2008    

Next week, I'll be doing a presentation on ADO.NET Data Services for Visug. While creating some demo's, I found myself in a bit of problems when debugging.

By default, Data Services don't return information on what's wrong when you try to execute some code, for example an update, against it. This is understandable: if you open up a data service on the web, you shouldn't be returning all important information about entities in the underlying model.

However, when developing a Data Service, it might be handy to get a little more information than just "An error occurred while processing this request". Here's how to achieve this...

You can start by setting the UseVerboseErrors on the ServiceConfiguration to true, like so:

public static void InitializeService(IDataServiceConfiguration config)

{

config.UseVerboseErrors = true;

config.SetEntitySetAccessRule("*", EntitySetRights.All);

}

This will get you the error returned by the model/database. For example, you'll see that you are inserting duplicate keys in your tables.

Now, this is OK if you are able to run your service. But what if it doesn't even start? You'll get the generic error: "The server encountered an error processing the request". Trying to get more info with the above method won't help you, since the service didn't even execute anything.

In that case, you can use the following attribute on your service class:

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]

public class Service : DataService<NorthwindEntities>

{

...

These 2 options should provide you with enough information about what's going wrong with your services. Do remember to remove them when you go live with the application!

  Posted on: Sunday, October 12, 2008 1:04:56 PM (Romance Daylight Time, UTC+02:00)   |   Comments [3]
         
Wednesday, October 22, 2008 6:06:21 AM (Romance Daylight Time, UTC+02:00)
Thanks! This is a great tip for people just dipping their toe into ADO.NET Data Services.
Adrian
Tuesday, November 04, 2008 8:25:57 PM (Romance Standard Time, UTC+01:00)
Thanks for these tips - it allowed me to find the problem!

(I was just getting generic Request error)
Wednesday, January 28, 2009 5:10:03 AM (Romance Standard Time, UTC+01:00)
Thanks I was able to troubleshoot an error that had me stopped for a day.
Reggie
Comments are closed.
7/30/2010   12:29:46 AM