WCF-Global Exception Handling using IErrorHandler

Global Exception Handling – IServiceBehavior and IErrorHandler
To demonstrate this we need to create an ErrorHandler class by implementing the IErrorHandler and also a ServiceBehaviorAttribute class by impementing a IServiceBehavior. IServiceBehavior allows you to implement a service behaviour attribute which takes a custom error handler parameter which implements IErrorHandler

The IErrorHandler type exposes two methods. HandleError and ProvideFault.

  • Use the HandleError method to implement error-related behaviors such as error logging, system notifications, shutting down the application, and so on, and return a value that specifies whether the exception has been handled appropriate.
  • ProvideFault enables the creation of a custom FaultException<TDetail> that is returned to to the client from an exception in the course of a service method.

The IServiceBehavior type exposes three methods. AddBindingParameters, ApplyDispatchBehavior and Validate. For this article we are much interested only in ApplyDispatchBehavior method.

  • Here AddBindingParameters provides the ability to pass custom data to binding elements to support the contract implementation.
  • ApplyDispatchBehavior provides the ability to change run-time property values or insert custom extension objects such as error handlers, message or parameter interceptors, security extensions, and other custom extension objects.
  • Use the Validate method to confirm whether the current service can execute properly according to your scenario.

How it works

Whenever an unhandled exception occurs in a service decorated with the service behaviour attribute, two methods on the global error handler are called automatically: ProvideFault which allows you to construct a FaultException (rather than let ServiceModel do it), and HandleError which is intended for logging. The ProvideFault method is called first on the worker thread that is invoking the service call and HandlerError is called asynchronously on a separate thread, so lengthy logging operations don’t block the service request thread from sending a FaultException back to the client immediately.

WCF Global Exception Handling

Read more from CodeProject.com

Visual Studio “14” CTP now available

Some hours back , the Visual Studio “14” CTP was released. An early preview of the next version of Visual Studio. You can find the Visual Studio and .NET release announcements on Soma’s blog. You can find a complete list of new features in the Visual Studio “14” CTP knowledge base article.

This Visual Studio “14” CTP brings together several new technologies that we recently announced including:

  • The .NET Compiler Platform, also known as “Roslyn,” which includes the upcoming version of our managed compilers for C# and VB as well as an API that enables developers to integrate with the VS compiler and language service more easily than they can today. You can read more about the .NET Compiler Platform on the C# and VBteam blogs.
  • Updates to the Visual C++ Standard Library, added utility functions, manipulators, functions, and several bug fixes that will improve productivity. To learn more about all the changes visit the C++ team blog.
  • Tooling for ASP.NET vNext. ASP.NET vNext is a lean and composable .NET stack for building modern web applications for both cloud and on premises servers. For more information about ASP.NET vNext go to ASP.NET vNext website and check out the ASP.NET team blog.

CTPs provide early adopters with an opportunity to try out the new and improved product features, and the ability to share feedback with the product team.

Please report bugs using Connect and share your suggestions through Send-a-Smile from within the IDE or on our UserVoice site.

Note, Visual Studio side by side support is not available on this early build. Do not install this CTP on a machine with any other version of Visual Studio installed.

Download .NET Framework 4.5.2 (Web Installer, Offline Installer)

The Microsoft .NET Framework 4.5.2 is a highly compatible, in-place update to the Microsoft .NET Framework 4, Microsoft .NET Framework 4.5 and Microsoft .NET Framework 4.5.1. The web installer is a small package that automatically determines and downloads only the components applicable for a particular platform.

This is a web installer. There are separate installers for web and offline installation. If you intend to redistribute either of these installers in the setup for your own product or application, we recommend that you choose the web installer because it is smaller and typically downloads faster. The web installer is a small package (around 1 MB) that automatically determines and downloads only the components applicable for a particular platform. The web installer also installs the language pack matching the language of the user’s operating system.

This is offline installer. If you dont want to use web installer then this will be the right option for you. This will enable you to install even if you are not connected to the Internet.

This version of the .NET Framework runs side-by-side with the .NET Framework 3.5 SP1 and earlier versions, but performs an in-place update for the .NET Framework 4, .NET Framework 4.5 and .NET Framework 4.5.1.

Please see the Knowledge Base Article KB2901954 for more information.

For important information about this release, see the .NET Framework 4.5.2 Readme File.