Quiero personalizar excepciones/errores lanzados desde mi WCF Data Service, para que los clientes obtengan la mayor cantidad posible de información sobre qué fue exactamente lo que salió mal/qué es lo que falta. ¿Alguna idea de cómo se podría lograr esto?Manejo de excepciones con WCF Data Services
Respuesta
Debe crear excepciones personalizadas para esto. Lea este post aquí: Why Create Custom Exceptions?
¿En qué idioma está desarrollando?
Si necesita más información, por favor agregue algunos comentarios.
No creo que quiera saber cómo lanzar/atrapar excepciones en .NET.
Probablemente desee obtener ideas sobre cómo decir a los clientes que consumen un Servicio de datos WCF que algo (y qué) salió mal cuando se lanza/atrapa una excepción en el lado del servidor (servicio).
WCF Data Services utiliza mensajes de solicitud/respuesta HTTP y no se puede simplemente lanzar una excepción desde el servicio al cliente.
se puede decorar su clase de servicio con este atributo ServiceBehaviorAttribute así:
[ServiceBehavior(IncludeExceptionDetailInFaults=true)]
public class PricingDataService : DataService<ObjectContext>, IDisposable
{
...
}
Hay algunas cosas que hay que hacer para garantizar excepciones burbuja sobre la tubería HTTP al cliente.
Debe reconocer su clase DataService con lo siguiente:
[ServiceBehavior (IncludeExceptionDetailInFaults = true)] MyDataService clase pública: DataService
Debe habilitar errores detallados en la configuración:
public static void InitializeService (DataServiceConfiguration config) { config.UseVerboseErro rs = verdadero; }
Es mejor que tirar dentro DataServiceException es. El tiempo de ejecución del servicio de datos WCF sabe cómo asignar las propiedades a la respuesta HTTP y siempre lo ajustará en un TargetInvocationException.
[WebGet]
public Entity OperationName(string id)
{
try
{
//validate param
Guid entityId;
if (!Guid.TryParse(id, out entityId))
throw new ArgumentException("Unable to parse to type Guid", "id");
//operation code
}
catch (ArgumentException ex)
{
throw new DataServiceException(400, "Code", ex.Message, string.Empty, ex);
}
}
Luego, puede desempaquetar esto para el consumidor cliente reemplazando el HandleException en su DataService así:
/// <summary>
/// Unpack exceptions to the consumer
/// </summary>
/// <param name="args"></param>
protected override void HandleException(HandleExceptionArgs args)
{
if ((args.Exception is TargetInvocationException) && args.Exception.InnerException != null)
{
if (args.Exception.InnerException is DataServiceException)
args.Exception = args.Exception.InnerException as DataServiceException;
else
args.Exception = new DataServiceException(400, args.Exception.InnerException.Message);
}
}
Ver here para más información ...
- 1. WCF/WCF Data Services/Servicios WCF RIA
- 2. error de solicitud con WCF Data Services
- 3. WCF Data Services: Mocking OperationContext
- 4. Wcf manejo de excepciones
- 5. Colección existe Criteria en WCF Data Services
- 6. WCF Data Services Opciones de seguridad
- 7. WCF REST vs. ADO.NET Data Services
- 8. WCF Data Services o Entity Framework
- 9. diferencia entre el API Web WCF y WCF Data Services
- 10. WCF: manejo de excepciones en OneWay OperationContract
- 11. WCF Estrategias de manejo de excepciones
- 12. Monotouch: Servicios WCF y manejo de excepciones
- 13. Reutilizar tipos existentes con ADO.NET Data Services
- 14. ¿Se pueden implementar WCF Data Services o RIA Services con NHibernate?
- 15. Cómo deshabilitar esquemas de autenticación de WCF Data Services
- 16. Cómo manejar json DateTime devuelto por WCF Data Services (OData)
- 17. .NET RIA Services/WCF Services
- 18. RIA Services vs ADO.NET Data Services
- 19. Diferencia entre WCF Service, WCF RIA Services y WCF Data Service
- 20. Integrando XMLRPC/Web Services con Core Data
- 21. BackgroundWorker manejo de excepciones
- 22. Manejo de múltiples excepciones
- 23. Manejo de excepciones JSF2
- 24. Manejo de excepciones AOP
- 25. Ria Services vs WCF Dataservices
- 26. Mejores prácticas para integrar AutoMapper con WCF Data Services y EF4
- 27. excepciones personalizadas de manipulación - Java Web Services
- 28. manejo de excepciones ofstream
- 29. Manejo de excepciones con JPA + Hibernate
- 30. Manejo de excepciones asíncronas con void
estoy desarrollando en C#. Sin embargo, las excepciones que arrojo del servicio no llegan a los clientes que consumen el servicio. – Martinfy