Подтвердить что ты не робот

WCF IncludeExceptionDetailInFaults программно?

У меня есть следующий файл конфигурации, и я пытаюсь найти эквивалентные биты в С#, так как у меня есть служба, которая настроена полностью программно. Какой класс/свойство/метод следует искать?

Спасибо.

<behaviors>
    <serviceBehaviors>
        <behavior name="ServiceGatewayBehavior">
            <serviceMetadata httpGetEnabled="true"/>
            <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
    </serviceBehaviors>
</behaviors>
4b9b3361

Ответ 1

Если вы хотите сделать это во всех случаях, используйте ServiceBehaviorAttribute:

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

Если вы хотите сделать это только в некоторых случаях, это будет определено во время выполнения....

////////////////////////////////////
// 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();