如何指定合同';WCF端点的XML配置中的命名空间?

如何指定合同';WCF端点的XML配置中的命名空间?,wcf,namespaces,contract,endpoint,xml-configuration,Wcf,Namespaces,Contract,Endpoint,Xml Configuration,我有一个WCF服务合同(经过了大量简化,但请注意它所在的名称空间): 在我的app.config(客户端)中,我为某些服务配置了一个端点: <endpoint address="..." binding="..." contract="Foo.Services.BarService.BarContract" /> 但是,这会导致一个错误,即在支持BarService.BarContract的客户端配置中找不到端点。我只能通过将contra

我有一个WCF服务合同(经过了大量简化,但请注意它所在的名称空间):

在我的
app.config
(客户端)中,我为某些服务配置了一个端点:

<endpoint address="..."
          binding="..."
          contract="Foo.Services.BarService.BarContract" />

但是,这会导致一个错误,即在支持
BarService.BarContract
的客户端配置中找不到端点。我只能通过将
contract
属性值更改为
BarService.BarContract
(即删除名称空间)来消除此错误

为什么呢?这个错误从何而来?为什么我不能提及契约类型的名称空间部分?这不应该导致WCF找不到匹配的端点吗


回答@Ladislav Mrnka评论中的问题:

  • 我说的是客户方面。(我忘了提到这一点,对此我很抱歉。) 这个错误可能来自服务器端吗

  • 我通过VisualStudio的Add service Reference工具生成了上述服务契约,以及实现它的
    BarClient
    类。我指定了由其他人运行的
    酒吧服务的URL。在这里,我还指定服务应该放在
    Foo.Services.BarService
    名称空间中

  • 我打算直接通过为我自动生成的
    BarClient
    类使用该服务,而不是通过
    ChannelFactory


通过添加服务引用创建客户端不会从服务重新创建命名空间结构。所有创建的类型和契约都放置在由服务引用的名称定义的新命名空间中。我猜你把你的服务命名为BarService。客户机配置必须遵循生成的合同名称。

是服务还是客户机配置有问题?您是如何创建客户机的?@Ladislav,我在问题的末尾附上了对您问题的答复。
<endpoint address="..."
          binding="..."
          contract="Foo.Services.BarService.BarContract" />