Presenting on OData and WCF 4 at St Louis Day of .NET
Aug 16th
If you haven’t registered, you should join the 600+ people who have registered for the 2010 St Louis Day of .NET, making this our biggest year yet!
I will have two presentations that are scheduled for both days of the conference. Kicking off the morning with the JumpStart series, I will be delivering the WCF 4 JumpStart. In this session we’ll cover the basics of WCF 4: What’s new/changed from 3.5, REST Support, the Routing Service and Deployment to IIS on multiple bindings (BasicHttp, Rest, and Net.Tcp).
The OData talk will be the same one I have delivered at Iowa Code Camp and the St Louis .NET Users Group. If you haven’t seen the session covers the basics of OData, how to query OData sources, and finally we’ll build an OData service following the Hanselman Stackoverflow Challenge.
Beyond my small contributions there are over a 100 great sessions to look for. Check out the agenda, our speakers, and try out the schedule builder to build a personalized schedule!
The Protocol ‘Net.Pipe’ is not supported–WCF/IIS7/WAS
Aug 15th
Want to host a WCF service using the NetNamedPipeBinding? I did too. Except IIS told me I couldn’t. After some frustrated Bing’ing and Googl’ing I found my answer.
This article on MSDN outlines how to enable Net.Pipe in IIS7. First you must enable the binding for the IIS site you are hosting the service in using this command (each command goes on a single line):
%windir%\system32\inetsrv\appcmd.exe set site "{YOUR_SITE_NAME}" -+bindings.protocol=’net.pipe’,bindingInformation=’*']
You can also accomplish this in the IIS Manager. Click on the site you want to enable Net.Pipe on, then click “Bindings”:
Select net.pipe from the list and in the Binding Information put an asterisk “*” (no quotes) ![]()
Click OK and you’re done. Using the IIS manager or the appcmd.exe will have the same effect.
Next we need to allow Net.Pipe for the virtual directory your service will be hosted in.
c:\windows\system32\inetsrv\appcmd.exe set app "{YOUR_SITE_NAME}/{Virtual_Directory"}" /enabledProtocols:http,net.pipe
This can be accomplished in the IIS Manager as well. Click on the virtual directory you want to add net.pipe to and then click “Advanced Settings…”
Next, in the enabled protocols box add the protocols you want, separating them with a comma. ![]()
Click OK and you’re done. Using the IIS manager or the appcmd.exe will have the same effect.
Once you have completed both these steps you should now be able to access your service over Net.Pipe after configuring the binding in your WCF service config.
2010 St. Louis Day of .NET August 20-21
Jun 17th
Registration for the 2010 St Louis Day of .NET conference is now open. The cost of the conference is $200; if you register by July 10th the cost is $125 (So register now!!).
This years conference will feature a keynote from Brian Goldfarb, Director of Product Management for Developer Platforms at Microsoft. You can read more about Brian on the keynote address page at the DODN website.
Remember kids – Register early to get a discount and join us for the 2010 St Louis Day of .NET
“Such an awesome day, it takes two days!”
Speaking at the June STL .NET User Group
Jun 17th
This month I will be presenting "OData – Make a Feed for That" at the St. Louis .NET User Group.
From the website:
You might have heard of ADO.NET Data Services and are wondering why it’s now WCF Data Services (Or maybe you haven’t heard of either which is another reason to attend this month’s user group!). In this session we’ll explore the OData protocol that drives WCF Data Services and look at example OData services and how you can consume them easily in .NET and Silverlight. Join us and learn how OData can make the web your data source with this new standard.
As always, there is *free food* so you can come chew on that and tune out the speaker if that’s how you roll!
Chris is a human. From planet earth. He likes to watch his kids grow and his disposable income shrink. For 40 hours a week he is a consultant with Daugherty Business Solutions in the Custom Line of Service working on .NET projects. The rest of the time Chris is chasing his kids, spending time with his wife or playing Xbox (or all of the above at the same time). He also likes to speak at local user group meetings and conferences about Microsoft technologies. He is a 2009 Microsoft MVP and does not look at all like a clown.
Monday, June 28, 2010
5:30 – 6:00 pm Food and social
6:00 – 7:30 pm Program
Location:
Three City Place Drive
Suite 1100
Creve Coeur, MO 63141
Exceptions Poster
May 6th
Much credit to the owner of this photo – "Cool Guys Don’t Look At Explosions"
Iowa Code Camp – Slides & Links
May 1st
Thanks to all who attended the OData session at Iowa Code Camp! Here are the slides & links to more info about OData.
Links:
- OData.org (Protocol Info, SDKs, & more)
- Astoria Team Blog
- Scott Hanselman’s OData + Stackoverflow Challenge
- LinqPad – LinqPad 4 has built in support for Data Service Queries!
- PowerPivot Beta for Office 2010 includes built in support for importing OData feeds
- Silverlight4Netflix (codeplex project) – Demo (Requires Silverlight 4 runtime)
MOSS 2007 – PagesListCPEventReceiver “Access Denied” (Event 6875)
Apr 15th
While in SharePoint today I was getting this error when creating new pages:
The event log contained these details:
Error loading and running event receiver Microsoft.SharePoint.Publishing.PagesListCPVEventReceiver in Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c. Additional information is below.
: Access is denied. (Exception from HRESULT: 0×80070005 (E_ACCESSDENIED))
“The trial period for this product has expired” and “Access Denied” do not ring the same to me. Cool error, but I’m not using the trial and my farm account is in the Administrators group for Dev. Bing & Google yielded a lot of hits, all of them claiming to have the fix. One article said to disable the logging of the message to the event log. That didn’t fix the problem.
This KB article ultimately had the fix, however it wasn’t in the recommended fix; It was in the steps to reproduce:
Steps to reproduce the problem
- Create a site collection.
- Click Site Actions, and then click Manage Content and Structure.
- Click Pages, and then click Edit Properties.
- Click Versioning settings.
- Under Content Approval, click No.
- Under Document Version History, click Create major versions, and then click OK.
- Click Site Action, and then click Create Page.
- Under Page Title and Description, type a title, and then click Create.
Upon reviewing the Versioning Settings in my MOSS installation I found that the settings were exactly the same as the “Steps to reproduce”. The solution, in my case, was to turn off Versioning for pages. I changed the settings as follows (No approval, no versioning)
This made my problems go away. Sadly I am not sure exactly how those settings changed or ended up in a state that prevented me from adding pages, but this fixed it and I can now continue on with my dev tasks.
MSDN Subscribers: Activate Your VS 2010 Trial With Conversion Key
Apr 14th
MSDN has added a trial activation key for subscribers with access to VS 2010 bits. Log into your MSDN account, go to downloads, find your edition of VS 2010 and look for the key!
This saved me waiting a few hours to download the full version which would automatically update the key. Enjoy!
Pretty URIs in WCF Data Services – Lose the .svc File
Apr 6th
I’m still testing this, but, it looks like in .NET 4 you will be able to use the new URL Routing to lose the .svc file in your WCF Data Services.
Step-by-step
Follow the standard steps for creating a WCF Data Service.
- Create a new, “Empty ASP.NET Web Application”
- Add an Entity Data Model
Once you have your entity data model, add a new class, derive it from DataService<T> where T is the entity set you created in the previous steps:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Services; using System.Data.Services.Common; namespace ODataSample { public class ProductService : DataService<AdventureWorksLT2008Entities> { public static void InitializeService(DataServiceConfiguration config) { config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; config.SetEntitySetAccessRule("Products", EntitySetRights.AllRead); config.SetEntitySetPageSize("Products", 20); } } }
Add a Global Application Class (global.asax). In the Application_Start method add the following snippet:
RouteTable.Routes.Add(new ServiceRoute("ProductCatalog", new WebServiceHostFactory(), typeof(ProductService)));
If all is well you should be able to hit F5 to debug. Since there is not a default page you’ll have to add the route name you specified onto the end of the URI. If all goes well you should see:
In my testing thus far it appears everything works as you’d expect in terms of appending on query parameters, etc.
St. Louis Day of .NET 2010
Apr 5th
August 20th & 21st 2010
Ameristar Casino & Resort St. Charles, MO
Last year we had 500 people, 66 sessions, and 48 speakers. This year we have even more in store. Be there with hundreds of developers and IT pros from across the country.
The 2010 St. Louis Day of .NET, such an awesome day it takes 2 days!


