miércoles, 30 de noviembre de 2011

Ojo al modificar tu servicio WCF…

Hoy he pasado un mal rato intentando solucionar un problema que, al final, era más simple de lo que parecía. Resulta que para cambiar una pequeña funcionalidad tuve que añadir un parámetro a uno de los métodos de un servicio WCF. El cambio vendría ser de lo siguiente:

[OperationContract,
WebGet(UriTemplate = "/MyMethod?parameter1={parameter1}",
       ResponseFormat = WebMessageFormat.Json)]
int MyMethod(int parameter1);

A lo siguiente:

[OperationContract,
WebGet(UriTemplate = "/MyMethod?parameter1={parameter1}",
       ResponseFormat = WebMessageFormat.Json)]
int MyMethod(int parameter1, int parameter2);

Bueno, pues que sepáis que hacer esto hacía que cualquier otro método de mi servicio dejara de funcionar con un error 401 (cortesía de SharePoint). Tras depurar el error vi que en realidad la causa de mi problema era que el método está declarado como GET y que en el UriTemplate no estaba especificando mi nuevo parámetro. Al final el método debería quedar así:

[OperationContract,
WebGet(UriTemplate = "/MyMethod?parameter1={parameter1}&parameter2={parameter2}",
       ResponseFormat = WebMessageFormat.Json)]
int MyMethod(int parameter1, int parameter2);

Sí, lo sé, es una chorrada de artículo y no sólo no aporto nada sino que os he hecho perder el tiempo a la mayoría, pero de alguna manera tenía que expulsar la mala leche que me ha entrado al descubrir el motivo de que mi sitio hubiera dejado de funcionar.

0 comentarios: