WCF

2010-03-20 31 views
62

için kodda IncludesExceptionDetailInFaults öğesini App.Config kullanmadan Code içinde IncludeExceptionDetailInFaults öğesini nasıl ayarlayabilirim?WCF

cevap

95

Evet, tabii - servis sağlayıcısını açmadan önce sunucu tarafında. Kendi özel oluşturmak gerekecek

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 barındırma aynı şeyi yapmak gerekirse: IIS barındırma senaryolarında çalışmaz - Bu ancak kendine ev sahibi WCF hizmeti olduğunu gerektirecektir MyServiceHost soyundan gelen ve uygun bir MyServiceHostFactory bu tür bir özel hizmet ana bilgisayarı başlatır ve * .svc dosyanızdaki bu özel hizmet ana bilgisayarına başvurur.

+3

koşu hizmeti vs yerel adlandırılmış borular WCF uygulamaya hayatımı Kaydedilen Interface devralır sınıf bildirimi yukarıda [ServiceBehavior] etiketinde ayarlayabilirsiniz. Teşekkürler ! – Larry

+0

Bu kod hangi dosyaya girer? –

26

Ayrıca bu

[ServiceBehavior(IncludeExceptionDetailInFaults = true)] 
public class MyClass:IMyService 
{ 
... 
}