Tipps und Tricks rund um .NET und Visual Studio

WCF Fehlerdetails bei WCF Services anzeigen
Kommentare

Dr. Holger Schwichtenberg (MVP) und FH-Prof. Manfred Steyer teilen in der Kolumne „.NETversum“ ihr Expertenwissen rund um .NET-Tools und WPF mit.

Im Standard liefert ein WCF-basierte Web Service keine detaillierte Fehlermeldung, sondern nur folgende lapidare Ausgabe:

a:InternalServiceFaultThe server was unable to process the request due to an internal error.   

Das ist kein Bug, sondern ein Sicherheitsfeature: Clients sollen im Standard nicht mehr Informationen als nötig vom Server bekommen. Um detaillierte Fehlermeldungen zu bekommen, muss man diese mit includeExceptionDetailInFaults=“true“ aktivieren:

 
    
      
        
          
        
      
    
  
  

Auch WCF Data Service reagiert im Standard ohne Details. Seine Antwort sieht folgendermaßen aus:

An error occurred while processing this request.   

Um das ausführlicher zu gestalten, muss man UseVerboseErrors = true aktivieren. Aber auch bei einem WCF Data Service ist ein includeExceptionDetailInFaults=“true“ zum Debugging sinnvoll, denn es gibt Fehler, die trotz UseVerboseErrors = true zu einer nichtssagenden Fehlermeldung führen. Das passiert immer dann, wenn der WCF Data Service gar nicht korrekt initialisiert werden konnte. Folgende Zeile zum Beispiel verhindert die Initialisierung, wenn es gar keine Entiträt „Unsinn“ gibt: config.SetEntitySetAccessRule(„Unsinn“, EntitySetRights.All); .

public class WWWingsDataService : DataService
{
public static void InitializeService(DataServiceConfiguration config)
{
// z.B.        
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
// Fehlerdetails aktivieren
config.UseVerboseErrors = true;
}
}
  

Dr. Holger Schwichtenberg (MVP) und FH-Prof. Manfred Steyer arbeiten bei www.IT-Visions.de als Softwarearchitekten, Berater und Trainer für .NET-Technologien. Dabei unterstützen sie zahlreiche Unternehmen beim Einsatz von .NET und entwickeln selbst in größeren Projekten. Sie haben zahlreiche Fachbücher geschrieben und gehören seit vielen Jahren zu den Hauptsprechern auf der BASTA!. Manfred Steyer ist zudem für den Fachbereich „Software Engineering“ der Studienrichtung „IT und Wirtschaftsinformatik“ an der FH CAMPUS 02 in Graz verantwortlich. Dr. Holger Schwichtenberg unterrichtet in Lehraufträgen an den Fachhochschulen Münster und Graz.

Autor

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -