Welcome to Windows Communication Foundation (WCF)
Top Tasks :

WCF Community Bloggers

Browse by Tags

All Tags » .NET Framework ... » NET Framework 3   (RSS)

  • CTP and Diagnosing WCF, CAB and other Exceptions

    In the last post , I talked about how we had reached Iteration 33 and gone to CTP with a large International bank. I alluded to some problems. Of course, one of the CTP's main purposes was to find problems and learn from them. We ended up having a variety of problems. There were initial problems in the Click-Once deployment. We built a WIX MSI (great work done by mostly Aaron & Brad) that installs our database scipts, sets up our config files, installs our WCF Services and sets up the service for the Click-Once Deployment of our client. This is installed server-side. The Click-Once deployment failed, our excellent person on the scene went to an xcopy deployment, and as you will see later, that caused some funly issues, although far from being the only and main cause. (Note: I have just split the post into two and the next part will talk about our solutions with the Service Factory, Exception Management and Logging Blocks). The gist of it is that our client never came up (-. Trying to find out why proved to be a two-day somewhat intense struggle for Steve and I who were the main leads dealing with our man in Paris. The first major realization is that all of us on the whole team had done a real crappy job dealing with Indigo Service exceptions not catching the variety of exceptions that could come up including the service not being there. We did have a Global Exception Handler and had a custom dialog with the nice error message. While realizing our shortfalls, the immediate mystery was why the Global Exception Handler did not catch and show these particular exceptions. Left to their own devices, these exceptions would bubble up and evetually show themselves as CAB exceptions. Our global handler handled the Application.ThreadException. What we forgot was to handle the AppDomain.UnhandledException event. It would be something like this: Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); AppDomain.CurrentDomain.UnhandledException Read More...

Copyright © 2006 Microsoft Corporation. All Rights Reserved. | Terms of Use | Privacy Statement | Contact Us