I’m currently doing research and revision for my 70-487 exam – Developing Microsoft Azure and Web Services. I was doing some reading and I encountered some information about hosting WCF Data Services and OData. It wasn’t something I had encountered in so far – so it has been an interesting and exciting prospect to look into.
I found a wonderful step by step tutorial into creating and hosting a WCF Data Service on MSDN, so I went through it.
First problem : I need some data. I’m quite getting into LocalDB at the moment – I’m thinking about the possibility of creating a developer database through migration scripts – so that a developer could clone a Github repo and run the project. The Database would be automatically created for them, and populated with sample data (if appropriate) – meaning that developers could run this project without a dependency on a database or fancy storage like that.
I managed to get the SQL Scripts for Northwind from codeplex – but with almost everything that Microsoft does these days being on github – going back to codeplex seemed old and outdated.
I followed through the instructions and ran the project.
OData seems to be very similar to REST – except that the url used are representative of the entity structure(rather than hiding behind controllers), and query like operations can be passed through to the server – giving maximum flexibility in terms of usage. So – anyway… I ran my project from Visual Studio 2015.
Metadata from my WCF Data Service
Yay – I have metadata about my service.Next step was to view the contents of the customers service by subtly altering the URL to add Customers to the end.
And then this happened :
Customers can’t be downloaded?
A pop up from Edge saying that Customers couldn’t be downloaded? That can’t be right. Let’s have a look at the same thing on Chrome.
Loading the Same OData service on Chrome reveals lots of lovely data.
So what’s going on here – my service works fineunder Chrome – but fails under Edge? Only Edge? How about IE
Acessing the OData Service on IE does present data – which IE interprets as an RSS feed.
It does seem to show the data under Internet Explorer – so it just appears to be the Edge Browser which is causing the problem. Next up – let’s run the network tab, and we’ll see what’s shaking.
Requesting the OData Service is stuck at Pending
So – notice that the result is still pending? In comparison navigating to http://localhost:50739/NorthwindCustomers.svc/ returns the following:
Accessing the OData Metadata on MS Edge does seem to return (response code 200)
Currently I’m working under the theory that Edge just doesn’t understand an element of the communication received. Given that the same service is being used for all browsers, then the issue is down to how Edge interprets some header received from the server.
Next up : I’ll record the headers that are returned from the service and see if I can determine a difference between the browsers – until I learn more though, I’ll have to work under the assumption that Edge just won’t work with this stuff