Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set IncludeExceptionDetailInFaults to true in code for WCF

Tags:

c#

wcf

How do I set IncludeExceptionDetailInFaults in code without using App.Config?

like image 586
Josh Avatar asked Mar 20 '10 13:03

Josh


People also ask

What is IncludeExceptionDetailInFaults?

Setting IncludeExceptionDetailInFaults to true enables clients to obtain information about internal service method exceptions; it is only recommended as a way of temporarily debugging a service application.


2 Answers

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.

like image 162
marc_s Avatar answered Sep 20 '22 14:09

marc_s


You can also set it in the [ServiceBehavior] tag above your class declaration that inherits the interface

[ServiceBehavior(IncludeExceptionDetailInFaults = true)] public class MyClass:IMyService { ... } 
like image 22
LievenV Avatar answered Sep 20 '22 14:09

LievenV