If I remember correctly, the purpose of the Exception Shielding feature was to
- Prevent the release of implementation detail across the service boundary, or
- Allow the developer to be lazy and not add try/catch blocks around all service operations at the service boundary.
Make your choice.
If my memory is correct, then all you need to do is either turn includeExceptionDetailInFaults
to false in the web.config, or to put try/catch blocks around your service methods:
try
{
// service code
}
catch (Exception ex)
{
// Log the exception
throw new FaultException("Unknown service failure");
}