21

I have the following in a config file, and I am trying to find the equivalent bits in C#, as I have a service that is configured fully programmatically. What class/property/method should I look for?

Thanks.

<behaviors>
    <serviceBehaviors>
        <behavior name="ServiceGatewayBehavior">
            <serviceMetadata httpGetEnabled="true"/>
            <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
    </serviceBehaviors>
</behaviors>
ehehhh
  • 1,066
  • 3
  • 16
  • 27
Snowy
  • 5,942
  • 19
  • 65
  • 119

1 Answers1

40

If you want to do this in all cases, use the ServiceBehaviorAttribute:

   [ServiceBehavior(IncludeExceptionDetailInFaults=true)]
   class MyServiceImplementation : IMyService
   {
      /// ...
   }

If you want to do it only in some cases, to be determined at runtime....

////////////////////////////////////
// Must include these at the top of file
using System.ServiceModel;
using System.ServiceModel.Description;
// ...

/////////////////////////////////////////////////////////////
// Inside whichever function initializes the service host
//
_serviceHost = new ServiceHost(_service);
if (IWantToIncludeExceptionDetails())
{
    var behavior = _serviceHost.Description.Behaviors.Find<ServiceDebugBehavior>();
    behavior.IncludeExceptionDetailInFaults = true;
}
_serviceHost.Open();
Ludwo
  • 6,043
  • 4
  • 32
  • 48
Andrew Shepherd
  • 44,254
  • 30
  • 139
  • 205