¿Puedo averiguar qué métodos de WCF se apoyan en el punto final antes de llamar?
-
30-09-2019 - |
Pregunta
Tengo un problema de versiones con un contrato de servicio de WCF en el que uno de los muchos puntos finales que reciben el nombre de la operación no se encuentra un método del contrato.
Mi pregunta es, ¿cómo puedo hacer que el comando está disponible en el cliente antes de intentar llamarle?
Me trató:
foreach (var od in proxy.Endpoint.Contract.Operations)
{
if (od.Name == "MyMethodName")
{
hasMethod = true;
break;
}
}
Por desgracia, esto es mediante el contrato de la aplicación de llamadas y en realidad no describe las implementaciones en el propio punto final. Como resultado, devuelve cierto a pesar de que el punto final ha fallado en implementar el comando.
Solución
Usted nunca sabe realmente hasta que probarlo. Lo que tenemos es un proxy del contrato ejecutado, pero lo que está en el lado del servidor podría haber cambiado desde que creó / generó.
Si se asume que es una aplicación http / httpws supongo que se podría llamar y comprobar la referencia de servicio y descargue el archivo WSDL. Que le dirá qué métodos, etc son compatibles. El problema que va a tener es que a pesar de que el nombre del método tal vez el mismo, también tendrá que comprobar el tipo de retorno y parámetros para estar realmente seguro de que es el mismo método y que se le puede llamar con el proxy que tiene actualmente.
Aquí hay un enlace en versiones en WCF:
http://msdn.microsoft.com/en-us/library/ms731060. aspx
Aquí hay un enlace en versiones de las mejores prácticas para WCF:
Mejores prácticas para versionar sus servicios con WCF?