WCF Runtime Components

After I posted my earlier entry on debugging WCF apps, I thought it would be a good idea to explain the different WCF runtime blocks . This way users can see how each block/class fits in the bigger picture and how the runtime processes new channels/messages. When Open() is called on a ServiceHost, the runtime…


Visual Studio 2005 SP1 Released

Update: Turns out this SP was only for the Visual Studio tools part and not for the framework. Which means the QFE wont be in this. Sorry about that (Will confirm before posting the next time). Over the weekend, Visual Studio team released SP1 for Whidbey. Usually when we release a SP, it will contain fixes for…


Debugging WCF Applications – What all I look for.

When I am debugging any WCF runtime bug, I classify it in two categories. One that needs IDE (simple logic bugs) and others that need WinDbg. Every one is familiar with the IDE debugging and will leave that topic for another day. Today I wanted to talk a little bit about how I debug WCF…


WCF Channels AutoOpen vs Open Semantics

Wanted to write up a post on whats the difference between “auto” opening a WCF Channel and explicitly calling “Open” on it. Michael Maruchek posted a detailed and well explained post at http://blogs.msdn.com/mjm/archive/2006/11/13/auto-open-part-1.aspx. Waiting for part 2. Since Micheal did such a wonderful job of explaining the design I just wanted to illustrate the behavior with a…


Photosynth preview. Wow

First VirtualEarth 3D and now PhotoSynth.No words to describe it. Check it out for yourself (esp the 3D overview of Piazza San Pietro). Maheshwar Jayaraman


WinFx: UseSynchronizationContext Usage

One of the most common problems we debug with WCF proxies invoked from WinForm/XAML app’s is a perceived hang when duplex contract’s are involved. The app usually has a “click to invoke proxy” button that invokes a method (which will callback the client) on the server and the app will freeze waiting for the response….


WinFx 3.0 has RTM’d

Sometime last Friday, admist cheers and high fives, our lead PM resolved the last bug that stopped us from signing off on WCF(code named Indigo). Bug # 1 was opened way back when Indigo was in planning stages and with this bug we signed off on the product. Today Microsoft announced RTM of the .Net…


What happens when InstanceContext.Release/GetServiceInstance() is called on a Singleton

InstanceContext has two methods, ReleaseServiceInstance and GetServiceInstance, that can be used by users to dynamically release and create new service instances. Service instance is the actual .Net instance of the contract on which operations are invoked. This post is to clarify the behavior of the API’s when the service is hosted as a Singleton. There are…


IInstanceContextProvider threading model

IInstanceContextProvider is the extension used by WCF runtime to associate/create InstanceContexts for every Message being processed. As I mentioned earlier this extension is called for every message arriving on every channel. This means that two messages from the same channel can race with each other in trying to get an InstanceContext. This is not an…


Is Live search usage increasing

Robert Scoble has a post where he feels that Live search is getting better. I have been using Live search for quite some time and now use it fulltime as I find it excellent. Now you may think that I am biased as I work for Microsoft but that’s not the reason. I was looking…