¿Cómo se especifica espacio de nombres de un contrato en la configuración XML de un punto final WCF?
-
11-10-2019 - |
Pregunta
Tengo este contrato de servicio WCF (simplificado en gran medida, pero prestar atención al espacio de nombres está en):
namespace Foo.Services.BarService
{
[ServiceContract]
interface BarContract {... }
}
En mi app.config
(lado del cliente), que configura un punto final para algún servicio:
<endpoint address="..."
binding="..."
contract="Foo.Services.BarService.BarContract" />
Sin embargo, esto resulta en un error que indica que no hay punto final se encontró en la configuración del cliente que sea compatible BarService.BarContract
. Sólo puedo deshacerme de este error cambiando el valor del atributo contract
a BarService.BarContract
(es decir, eliminando el espacio de nombres).
¿Por qué? Donde podría provenir de este error? ¿Por qué no debo hablar de la parte del espacio de nombres de un tipo de contrato? En caso de no ese resultado aún más en WCF no encontrar un punto final a juego?
Responder a las preguntas en el comentario de @Ladislav Mrnka a continuación:
-
Estoy hablando de la parte del cliente. (Se me olvidó mencionar este bit;. Lo siento por eso) Este error puede posiblemente venir del lado del servidor?
-
Me genera el contrato de servicio anteriormente, junto con una clase
BarClient
que lo implementa, a través de Visual Studio de Agregar referencia de servicio instalación. He especificado la URL de laBarService
, que está dirigido por otra persona. Ahí es donde yo también especificó que el servicio debe ser puesto en el espacio de nombresFoo.Services.BarService
. -
Me iba a utilizar el servicio directamente a través de la clase
BarClient
auto-generado para mí, no a través de unChannelFactory<BarContract>
.
Solución
Creación de cliente por Agregar referencia de servicio no vuelve a crear la estructura de espacio de nombres del servicio. Todos los tipos y contratos creados se colocarán de nuevo espacio de nombres definido por el nombre de la referencia de servicio. Así que supongo que usted designó a su barservice referencia de servicio. configuración de cliente debe seguir nombres de contratos generados.