How do I set IncludeExceptionDetailInFaults in code without using App.Config?
            Asked
            
        
        
            Active
            
        
            Viewed 5.3k times
        
    2 Answers
110
            Yes, sure - on the server side, before you open the service host. This would however require that you self-host the WCF service - won't work in IIS hosting scenarios:
ServiceHost host = new ServiceHost(typeof(MyWCFService));
ServiceDebugBehavior debug = host.Description.Behaviors.Find<ServiceDebugBehavior>();
// if not found - add behavior with setting turned on 
if (debug == null)
{
    host.Description.Behaviors.Add(
         new ServiceDebugBehavior() { IncludeExceptionDetailInFaults = true });
}
else
{  
    // make sure setting is turned ON
    if (!debug.IncludeExceptionDetailInFaults)
    {
        debug.IncludeExceptionDetailInFaults = true;
    }
}
host.Open();
If you need to do the same thing in IIS hosting, you'll have to create your own custom MyServiceHost descendant and a suitable MyServiceHostFactory that would instantiate such a custom service host, and reference this custom service host factory in your *.svc file.
 
    
    
        marc_s
        
- 732,580
- 175
- 1,330
- 1,459
- 
                    3Saved my life on a local named pipes WCF application vs running service. Thanks ! – Larry Jul 21 '11 at 12:19
34
            
            
        You can also set it in the [ServiceBehavior] tag above your class declaration that inherits the interface
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class MyClass:IMyService
{
...
}
 
    
    
        LievenV
        
- 791
- 7
- 8
 
    