Apr 102011

I had a business requirement to catch all web service exceptions and include them in an email.

Here’s how to do it:

Put the Web Service Call and Response inside a scope with an Exception Handler.  You don’t have to make it transactional.  You won’t be able to put both the send and receive shapes in an atomic scope.  I left it as “None”. You’ll need to add a reference to System.Web.Services.dll assembly to your project. Right-click on your scope and select Add New Exception Handler.
Select the exception handler you just added and open the properties window.

Configure the following properties:
Property    Value
Exception Object Type    System.Web.Services.Protocols.SoapException
Exception Object Name    ex_MyException

Inside of the exception handler you can do what you need by accessing ex_MyException.Details.  Be careful about terminating the orchestration inside of the exception handler, illness as it might cause zombies.