Durante lo sviluppo dei servizi di accesso ai dati con ADO.NET Data Services possono verificarsi molti casi in cui il codice vada in errore e siano sollevate eccezioni. Principalmente per motivi di sicurezza il servizio non distribuisce al client dettagliati messaggi di errore ma si limita a restituire il seguente XML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> <code></code> <message xml:lang="en-US">An error occurred while processing this request.</message> </error>
public class MyDataService : DataService<MyDataProvider> { public static void InitializeService(IDataServiceConfiguration config) { config.UseVerboseErrors = true; } }
Qualora sia il servizio stesso ad avere problemi di inizializzazione, nei casi ad esempio di limitazioni per policy di sicurezza, per avere un messaggio di errore esteso è necessario agire sul file di configurazione attivando la specifica opzione attraverso un behavior:
<system.serviceModel> <services> <service name="WebApplication1.MyDataService" behaviorConfiguration="IncludeExceptionBh"></service> </services> <behaviors> <serviceBehaviors> <behavior name="IncludeExceptionBh"> <serviceDebug includeExceptionDetailInFaults="True"/> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> </system.serviceModel>
[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)] public class MyDataService : DataService<MyDataProvider> //..
Attivando i messaggi di errore estesi sarà molto più semplice effettuare il debug di quei meri errori che possono verificarsi durante lo sviluppo.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.