Si eres un desarrollador ASP.NET, es muy probable que hayas oído hablar de la función ELMAH proyecto. En caso de que no lo haya hecho, ELMAH (Error Logging Modules and Handlers) es una serie de módulos HTTP y un controlador HTTP que se pueden añadir a sus aplicaciones web ASP.NET con el fin de realizar un seguimiento de las excepciones no controladas. ELMAH proporciona acceso para ver estos errores a través de una consola web, notificaciones por correo electrónico y un canal RSS.
Entonces, ¿dónde almacena ELMAH todas estas excepciones a medida que se producen? La respuesta, afortunadamente, es que es configurable. ELMAH viene de fábrica con proveedores para varias bases de datos relacionales (¿te acuerdas de ellas?), un almacén en memoria y archivos XML. Aunque no viene en la caja, ahora puedes añadir Couchbase a la lista de registros de entrada disponibles. Ayer publiqué el proveedor de ELMAH para Couchbase en Couchbase Labs. https://github.com/couchbaselabs/elmah-couchbase.
¿Por qué usar Couchbase para ELMAH? Si alguna parte de tu aplicación de repente empieza a lanzar excepciones, ¿quieres estar atascando tu RDBMS con escrituras o prefieres pasar la responsabilidad del logging a una base de datos que pueda manejar las excepciones? decenas si no cientos de miles de operaciones por segundo en un solo nodo. OK, con suerte tu aplicación no va a necesitar ese tipo de rendimiento para registrar excepciones. Pero si ese día llega...
Para empezar con el nuevo proveedor, necesitarás fist para instalar ELMAH (prueba el paquete Nuget que incluye la configuración, no el núcleo). Para más información sobre cómo instalar ELMAH. Una vez instalado, coge el código fuente de Couchbase ELMAH Log Entry de GitHub u obtén la última versión de Paquete Nuget. Configure ELMAH para utilizar el nuevo registro de errores en Web.config.
<errorlog couchbaseconfigsection=“" type="Elmah.Couchbase.CouchbaseErrorLog, Elmah.Couchbase" />
>
si (doc.Excepción) {
emite(doc.Tiempo, null);
}
}

Estoy teniendo algunos problemas para poner esto en marcha. Estoy viendo el siguiente error:
\La operación no es válida debido al estado actual del objeto" cuando se itera sobre el resultado de GetView en GetErrors().
Mi problema parece ser el mismo que uno ya publicado en los foros de couchbase (sin respuesta):
http://www.couchbase.com/forum…
¿Alguien puede aconsejarme?
Pregunta duplicada - no se puede borrar.
Anthony -
¿Qué versión del SDK está utilizando? ¿Puedes intentar actualizar la versión a la última (1.3.7 en el momento de escribir esto) y ver qué pasa?
Además, tenemos un foro de preguntas y respuestas (http://www.couchbase.com/commu... y/o puede utilizar Jira (http://www.couchbase.com/issue... si crees que has encontrado un error.
Gracias,
Jeff