tutorial example ejemplo consume application wcf wcf-data-services

ejemplo - wcf service c# example



WCF Data Service-¿Cómo diagnosticar un error de solicitud? (1)

Parece que solo está viendo el mensaje genérico "Error de respuesta". Para ver los detalles de ese mensaje, debe modificar el comportamiento a "includeExceptionDetailInFaults".

Puede cambiar el comportamiento en su archivo de configuración.

<services> <service name="DataServiceHost" behaviorConfiguration="DataServiceBehavior"> <endpoint name="DataServiceHost" address="" binding="webHttpBinding" contract="System.Data.Services.IRequestHandler" /> </service> </services> <behaviors> <serviceBehaviors> <behavior name="DataServiceBehavior"> <serviceDebug includeExceptionDetailInFaults="true"/> </behavior> </serviceBehaviors> </behaviors>

Tengo una aplicación que utilizará WCF para entregar varios fragmentos de datos a los clientes. Sin embargo, debido al tamaño de algunos de los conjuntos de datos que se devolverán (y eso se debe a que la aplicación cliente debe mostrar una gran cantidad de objetos en una lista, no porque haya sido vago en el diseño) m golpeando los límites de tamaño del mensaje.

Esperaba esto, y planeaba implementar la transmisión de respuesta / paginación de datos (creo que Pablo Cibraro escribió un artículo sobre esto una vez). Sin embargo, he visto algunas demostraciones que hacen que los servicios de datos de WCF se vean realmente geniales. Simplemente no he podido hacer que funcione para mí.

No tengo un back-end de base de datos, y no estoy alojando dentro de IIS. He podido obtener algunos ejemplos trabajando en objetos básicos, pero tan pronto como lo conecto con los objetos de mi aplicación, simplemente no funciona, recibo un Error de solicitud, que parece estar diseñado para ser inútil. solo sugiere consultar los registros del servidor sin sugerir cómo puedo hacer esto. Sospecho que asumo que estoy alojando con IIS, e IIS podría registrar mensajes para los servicios de datos que aloja.

Una clase razonablemente simple con la que estoy tratando de trabajar es para un mensaje de registro (quiero que un cliente de estilo de panel de diagnóstico pueda mostrarme de forma remota los registros del servidor desde, por ejemplo, las últimas 24 horas):

public class Message { public string Source { get; set; } public MessageType Type { get; set; } public DateTime Timestamp { get; set; } public string MessageText { get; set; } public override string ToString() { return string.Format("[{0}] [{1}] [{2}] {3}", Timestamp.ToString(), Source, Type, MessageText); } }

El uso de esta clase genera el error, mientras que si apunto a una clase, simularé una prueba (como en la demostración de Pablo aquí: http://msdn.microsoft.com/en-us/data/cc745968.aspx ), entonces funciona bien. ¿Alguna idea sobre por qué es esto o cómo puedo obtener algo útil del error?

A continuación se muestra la definición de mi servicio y la clase que estoy usando para exponer la implementación IQueryable <> de las colecciones que deseo devolver (en este momento solo he hecho el Registro, que es tipo List<Message> )

public class DataServiceFacade { public IQueryable<Message> Log { get { return Program.Log.AsQueryable(); } } } public class DataServiceHost : DataService<DataServiceFacade> { public static void InitializeService(IDataServiceConfiguration config) { config.UseVerboseErrors = true; config.SetEntitySetAccessRule("*", EntitySetRights.All); config.SetServiceOperationAccessRule("*", ServiceOperationRights.All); } }

Ahora, esto podría ser algo simple, pero ya he pasado demasiado tiempo golpeando mi cabeza contra esta pared de ladrillo en particular. Esperaba que los servicios de datos manejaran cosas como la paginación para mí y me dieran un formato flexible y agradable que funcionaría en diferentes plataformas.

Además, si no va a ser posible utilizar los Servicios de datos para esto, apreciaría cualquier puntero en la paginación de datos o la transmisión de la colección.

Gracias