WCF Data Services 5.0.1 Released


We have just pushed the official bits for 5.0.1 to NuGet and should be releasing an updated MSI sometime within the next week. Thanks to feedback from the community we found and fixed several bugs, detailed below.

NuGet Links

Release Notes

  • Added configuration setting to ODataLib to allow users to intercept the XML reader before ODataLib processes the payload
  • Fixes bug where DateTime values do not roundtrip properly in JSON verbose
  • Fixes bug where $metadata requests fail on services with both actions and service operations
  • Fixes bug where $expand requests fail on Oracle providers
  • Fixes bug where vocabulary annotations in an external annotations file fail to resolve the target

What does the MSI do?

All of the fixes detailed above are in the NuGet bits. There is one additional fix in the MSI for code generation against services that have multiple overloads for a function import. One important nuance of the MSI is that it removes the WCF Data Services DLLs from the GAC. (The 5.0.1 MSI is an upgrade to the 5.0 MSI, which means that the 5.0 MSI gets uninstalled and its install actions – including the GACing of the DLLs – are reversed.) We have blogged previously about leaving the GAC.

Where should the MSI be installed?

The MSI should only be installed on development machines as it solely contains tooling fixes. If the MSI is installed on a production Web server running a WCF Data Services 5.0.0 service that was not bin deployed, the service may stop functioning.

Feedback Please

As we begin to release more quickly and issue more prereleases, your feedback is critical to the process. Please leave your comments and thoughts below.

Comments (13)

  1. Ryan Pedersen says:

    Great news about the bug fixes and the GAC. I am working on an MSCIS team where we use the 5.0 version in Azure and we are having a couple of issues WCF Data Services and ACS. From time-to-time the data service is returning a 500. If I reload the page then everything works fine.

    Right now nothing has been GACed… could this be contributing to the issue? Could the 5.0.1 update resolve this? Is this a known issue I can resolve by reading something else?

  2. Ryan Pedersen says:

    A member of the WCF Data Services team contacted me today offline and suggested that I make a post over in the WCF Data Services forums to get the proper level of help with the issue. I have not made that post because I was able to resolve the issue late Saturday night.

    The entire application in hosted in Azure is secured using ADFS and there was a single missing line in the global.asax file that was missing. This was causing some very odd errors on the site.

    The offending line was: FederatedAuthentication.ServiceConfigurationCreated += OnServiceConfigurationCreated;

    This needs to happen inside of Application_Start(). I had coded the OnServiceConfigurationCreated but failed to wire it up correctly.

    Thanks again to Mark Stafford for reaching out and pointing me in the right direction.

  3. Vagif Abilov says:

    Are there are any examples for ODataLib? NuGet packages look very promising but without having its source code or tests it's difficult to figure out how to use them.

  4. @Vagif – we need to make an update to CodePlex, but an old version of the source is available there (http://odata.codeplex.com/).

  5. James Manning says:

    Where can we get the 5.0.1 MSI?  Or, if it's not available yet, where will it be once it's ready?

    Thanks!

  6. James Manning says:

    Where should bugs be filed?  The codeplex project had 1 issue created last year with no response, so it's not clear if bugs should be filed there, or connect, or what. 🙂

    Thanks!

  7. @James – We're currently debating the value of releasing the 5.0.1 MSI. It only had one fix that the NuGet packages didn't have (a fix for codegen against services that have multiple overloads for a function import) and we believe we'll have to release an updated MSI with JSON light anyway. Given the fact that we do have some release cost and the JSON light release will hopefully be sometime soon, we're tentatively planning to hold off for now on the MSI. If that's a problem for you or anyone else reading this comment, we'd like to hear it. (Remember, the new MSI won't GAC the DLLs anyway.)

    As far as bugs go, we have historically recommended that people work through things on our forums (social.msdn.microsoft.com/…/threads) first. Connect is an option but you are more likely to get a rapid response from the team through the forums.

    HTH,

    Mark

  8. Shashi says:

    Does this release work with Sharepoint 2010

  9. Mark de Leeuw says:

    I found two bugs/problems when adding a Service Reference for a WCF DataService version 5.0.1-rc to a silverlight 4.0 client in VS2010 :

    1. After adding or updating the service reference, an assembly reference is added to the project for System.Data.Services.Client.dll wich conflicts with Microsoft.Data.Services.Client.SL

    2. The code-generated collection fields are missing a 'global::' in front of the enum value System.Data.Services.Client.TrackingMode.None. This is problematic if the entity contains a property named System:

    sample:

    private global::System.Data.Services.Client.DataServiceCollection<ActionArgument> _Arguments = new global::System.Data.Services.Client.DataServiceCollection<ActionArgument>(null, System.Data.Services.Client.TrackingMode.None);

  10. I have a very strange problem since I have updated from 4.0 to WCF Data Service 5.0.1 (via Nuget). I have a Silverlight 5! Application and I set a Token in the SendingRequest-Event of the Context to the Http-Header:

    private void ContextSendingRequest(object sender, SendingRequestEventArgs e)

    {

        e.RequestHeaders["token"] = "xyz…";

    }

    On the Server I use the ProcessingRequest event to read out the HTTP-Header and verify the token:

    var authHeader = HttpContext.Current.Request.Headers["token"];

    ..

    Unfortunately now I can't Update or Insert any Entities because I get the following Exception:

    System.Data.Services.Client.DataServiceException:

    <?xml version="1.0" encoding="utf-8" standalone="yes"?><error xmlns="schemas.microsoft.com/…/code><message xml:lang="de-AT">Content-Type header value missing.</message></error>

    If I comment out (all the above mentioned lines of code) everything works as well…

    I can't understand this strange behaviour?! How can I fix this??

    Another strange thing I found out (using Fiddler) is the fact, that it uses the DataServiceVersion 1 and the MaxDataServiceProtocolVersion is V2 although i set the Version on the Server to v3 –>

    config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;

    Thanks in Advance!

    Steve

  11. Olivier STEPHAN says:

    @Stefan Pe

    Try to manage default handled event in your specialized DataService<T> implementation on server side =>

    This works fine on my environment.

    protected override void OnStartProcessingRequest(ProcessRequestArgs args)

           {

               string strMessage = string.Format(

                   "Processing HTTP {0} request for URI {1}",

                   args.OperationContext.RequestMethod,

                   args.RequestUri);            

                var requestHeaders = args.OperationContext.RequestHeaders;

                var token = requestHeaders["token"];

    […]

           }

    Hope this helps …

  12. Deploy on Azure fails says:

    We are trying to use WCF Data Services 5.0.1 on Azure. On local simulator everything is working properly, but deployed on Azure we got an error because service is searching for version 5.0.0 instead of 5.0.1. We have set all assemblies with Copy Local and they are correctly deployed on server.

    Any clues?

  13. hamilton oliveira says:

    Why dont you make the server side (DataService<T> et al) also open source?