【问题标题】:what is the use of base address in WCF service [closed]WCF服务中基地址的用途是什么[关闭]
【发布时间】:2012-12-28 12:20:02
【问题描述】:

基地址有什么用...我的意思是基地址是什么意思?如果我省略基地址,会出现什么问题?

什么时候需要基地址?

根据下面的配置条目,有两个基地址...为什么需要两个基地址。当人们给出更多的基地址时?看看下面的 2 个基地址,告诉我为什么人们给出两个基地址,为什么不一个...有什么具体原因吗?

   <host>
   <baseAddresses>
    <add baseAddress="net.tcp://localhost:1645/ChatServer/"/>
    <add baseAddress="http://localhost:1648/ChatServer/"/>
   </baseAddresses>
   </host>

【问题讨论】:

  • 嗯,这对我来说似乎是一个好问题,这肯定是我现在正在努力寻找答案的问题,marc_s 回答的质量证明了这是一个有效的问题下面。

标签: wcf


【解决方案1】:

基地址(每个“方案”一个 - 例如http 一个,net.tcp 一个等)可以定义地址的“基” - 如果您打算指定多个端点,这非常有用。

基地址从不是必需的 - 它是可选的,可以帮助您简化生活。

有了基地址,就可以只指定每个实际服务地址不同的“相对”部分。

想象一下,您想要拥有三个服务端点 - 您可以在类似这样的配置中单独、完全地定义它们:

<service name="Test1">
   <endpoint name="endpoint1"
       address="http://yourserver/yourservices/test1/service1" ..... />
   <endpoint name="endpoint2"
       address="http://yourserver/yourservices/test1/service2" ..... />
   <endpoint name="endpoint3"
       address="http://yourserver/yourservices/test1/service3" ..... />
</service>

或者您可以通过指定基地址来定义通用部分,然后更容易阅读“相对”地址:

 <service name="Test1">
    <host>
      <baseAddresses>
        <add baseAddress="http://yourserver/yourservices/test1/"/>
      </baseAddresses>
    </host>
    <endpoint name="endpoint1"
        address="service1" ..... />
    <endpoint name="endpoint2"
        address="service2" ..... />
    <endpoint name="endpoint3"
        address="service3" ..... />
 </service>

因此使用基地址可以更轻松地指定多个端点 - 并且可以节省一些输入。

另外:请注意,只有当您自托管 WCF 服务时,基地址才真正有用。如果您使用 IIS 来托管您的 WCF 服务,那么 *.svc 文件的位置实际上决定了该服务的“基地址”,例如在这种情况下,拥有一个基地址并没有真正的区别/根本没有帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-09-14
  • 2011-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-12
相关资源
最近更新 更多