WCF服务基地址与端点地址

以下两种情况有什么区别:

配置1:

         

配置2:

          

我的理解是在任何一种情况下, 基地址+端点地址都解析为相同的绝对地址

但是为什么我在配置2上得到错误: “没有终点正在监听net.tcp://127.0.0.1:808 /
配置1 运行服务没有任何错误

编辑1:

工作配置:

       

非工作配置:

  <!--    -->    

在这种情况下,我删除了基地址并提供了完整的服务地址(带有.svc路径),但是出现套接字超时错误。 在这种情况下有什么问题? 当未定义基址时,端点地址是否始终需要.svc的完整地址? 如果是这样,背后的原因可能是什么?

baseAddress就是你的端点的基地址(除非明确指定)。 所以每个都将inheritance自 (这就是为什么它们通常是"""mex" )。 例如

    ...   

您现在有两个端点:

  • http://127.0.0.1:1337/ – 服务端点
  • http://127.0.0.1:1337/mex – 元数据端点

通过免除您需要都是完全限定的(包括mex(不是))。 例如

  ...   

您现在有两个不同的端点:

  • net.tcp://127.0.0.1:1337/ – 服务端点
  • http://127.0.0.1:1337/mex – 元数据端点