Necesidad:
Contestar a una encuesta implementada en un sitio de SharePoint 2010 desde una página en ASP .Net (los motivos no entro a detallarlos).
Solución:
Conectar desde la página ASP .Net a los Data Services expuestos por SharePoint 2010 en la ruta _vti_bin/listdata.svc del sitio.
El código tiene la siguiente apariencia:
ProyectoDataContext ctx = new ProyectoDataContext(new Uri("http://nombre_servidor:22222/_vti_bin/listdata.svc", UriKind.Absolute));
ctx.Credentials = CredentialCache.DefaultCredentials;
EncuestaItem respuestaEncuesta = new EncuestaItem();
respuestaEncuesta.Pregunta1 = "Texto";
// se almacena en SP 2010
ctx.AddToEncuestaProyectosIC(respuestaEncuesta);
ctx.SaveChanges();
Response.Redirect("Gracias.aspx");
Todo parece funcionar bien hasta llegar a la instrucción SaveChanges() en la que se produce la siguiente excepción (Exception.Message): error al procesar esta solicitud. Obtenemos un mayor detalle de la excepción con la propiedad Exception.InnerException.Message: Error al procesar esta solicitud.La cadena de entrada no tiene el formato correcto. Lo curioso del caso es que la respuesta a la encuesta se guarda perfectamente en la lista de SharePoint.
Como no podía quedarme sin saber qué estaba ocurriendo investigué un poco y encontré el motivo y la solución de lo que estaba pasando: la encuesta estaba configurada para no mostrar los nombres de usuario en los resultados de la encuesta. Basta con cambiar este parámetro para que sí muestre los nombres de usuario en los resultados de la encuesta y la instrucción SaveChanges() funciona sin ningún tipo de problemas.
Lógico, ¿verdad?
No hay comentarios:
Publicar un comentario