Как установить IncludeExceptionDetailInFaults в код без использования App.Config?
Установите IncludeExceptionDetailInFaults в true в коде для WCF
Ответ 1
Да, конечно - на стороне сервера, прежде чем открыть хост службы. Тем не менее это потребует, чтобы вы самостоятельно принимали WCF-сервис - не будет работать в сценариях хоста IIS:
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();
Если вам нужно сделать то же самое в хостинге IIS, вам нужно будет создать собственный пользовательский потомок MyServiceHost
и подходящий MyServiceHostFactory
, который будет создавать такой настраиваемый хост службы и ссылаться на этот пользовательский хост службы factory в вашем файле *.svc.
Ответ 2
Вы также можете установить его в теге [ServiceBehavior] над объявлением класса, который наследует интерфейс
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class MyClass:IMyService
{
...
}