Sviluppare servizi basati sull'Open Data Protocol è un'operazione piuttosto veloce grazie agli strumenti messi a disposizione del .NET Framework 3.5. Basta infatti preparare la classe DataService<T> ed indicare il tipo da esporre, sia esso un ObjectContext di LINQ to Entities, sia un oggetto personalizzato come si è visto nello script #173.
Purtroppo in casi di errore è difficile capirne la causa poiché si riceve un errore generico HTML, soprattutto se si è sbagliato qualcosa nella definizione del servizio, degli attributi e non solo in caso di errori di accesso al database o simili. Per avere quindi la possibilità di effettuare una diagnostica migliore occorre prima di tutto impostare a true la proprietà UseVerboseErrors dell'oggetto IDataServiceConfiguration di configurazione del servizio. In secondo luogo, poiché si tratta di fatto di un servizio WCF, occorre abilitare l'opzione IncludeExceptionDetailInFaults tramite l'apposito behavior. Purtroppo però i WCF Data Services sono autoconfiguranti e abilitare questa opzione richiede obbligatoriamente l'uso dell'attributo ServiceBehavior.
Nell'esempio successivo è possibile vedere quindi come impostare entrambe le proprietà.
[ServiceBehavior(IncludeExceptionDetailInFaults = true)] public class ProductsService : DataService<Products> { public static void InitializeService(IDataServiceConfiguration config) { config.UseVerboseErrors = true; config.SetEntitySetAccessRule("All", EntitySetRights.AllRead); } }
In questo modo è possibile poi vedere l'intera descrizione dell'errore, comprensiva dello stack trace, nella pagina HTML restituita dal servizio.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Change tracking e composition in Entity Framework
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Generare velocemente pagine CRUD in Blazor con QuickGrid
Usare le navigation property in QuickGrid di Blazor
Filtering sulle colonne in una QuickGrid di Blazor
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Le novità di Entity Framework 8
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Utilizzare QuickGrid di Blazor con Entity Framework
I più letti di oggi
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Creare una libreria CSS universale: Cards
- Eseguire script pre e post esecuzione di un workflow di GitHub