Tag Archive: wcf rest


Currently I am working on a sample project in .net 4.0 and in which I am using Entity Model to expose my Data from SQL Server 2008 database.
Now I am also using POCO entities as in .Net 4.0 POCO entities gives us better control over the entities we are using to map with the entities in the Entity Model compare to the auto generated entities generated by Entity Model itself.
Now here are my two POCO entities ‘User’ and ‘Account’….

Click the image for full view…….

Now I am querying data from SQL using LINQ to SQL as shown below in code…….

This code should return the ‘Account’ with users in it but instead it returns no data in browser or no Error/ Exception as well but simply shows “Webpage can’t be displayed” in IE8 as shown in the image below…..

Now I just tried to figure out the issue but not found anything as there was no error or Exception in the code and the only symptom of this issue was that when I was debugging the code it comes to the debug point twice in the method where I am using LINQ to SQL. The good thing was it was showing the correct results inside the variable ‘accountList’ but was not showing any result in the browser.

Then I suddenly notice that my ‘Account’ entity has the property ‘Users’ of type [List of ‘User’] (Angle brackets not allowed here) and then again each User has the property ‘Account’ and again each ‘Account’ has List and seems like infinite dependency on each other….

So what I tried for the solution was, I just added the attribute [IgnoreDataMember] (using System.Runtime.Serialization assembly) on ‘Account’ property in my ‘User’ entity class as shown below in image……..

And tested it again…. and guess what…. Bingoooo…. It just simply works and now browser shows the correct data as shown in image below……

Click the image for full view…….

So what I guess is that it was happening because of kind of infinite circular dependency created by data model I am using.

(If I am not using extention method ‘Include()’ in my LINQ to SQL, it works just fine and returns the Accounts without ‘Users’ off course)

But the question that still remains is, it’s the known issue or the unexplored bug of using LINQ to SQL with POCO entities.

For last 3-4 days I am trying to understand the RESTful architecture for applications.
And so for start I have created a sample REST service using “WCF REST Service Application” template in Visual Studio 2010 RC and .Net Framework 4.

At first I have tested service operations of my REST service with ‘GET’ & ‘POST’ and they were working absolutely OK.
(I have not created any client yet to test my RESTful service but I am using ‘Fiddler‘ for the purpose.)

Now when I have started testing with ‘PUT’ verb in my request to REST service through fiddler, it has returned Http Error 405 (‘Method not Allowed’).
Then I started testing ‘DELETE’ and it was also not working with the same Http Error 405.

As I am like newbie to REST Services and IIS stuff and all that, I have not understand the error described in Image above.
So I have googled this Error a lot but not found the appropriate answer and so ultimately put the question on official IIS forum as I have found by the time that, this Error is related to IIS……

Link to IIS Forum My thread ==> http://forums.iis.net/t/1166025.aspx

And Bingo……. I got the answer from the forum so quickly and that just simply worked.

The issue was WEB DAV module on IIS was throwing the Http Error 405 as it was claiming to process the request sent by my application on IIS, but my application is not configured to process it with WEB DAV module which do not support ‘PUT’ and ‘DELETE’ verbs by default.

So as a solution I have just removed WEB DAV module from my IIS 7…….
Go to IIS Manager ==> Default Web Site ==> MyRESTApplication ==> Modules(In Features View) ==> WEB DAV Module (On module right click) ==> Remove

Now evrything in my RESTful application works just great…