16

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

什么时候需要基地址?

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

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

1 回答 1

27

一个基地址(每个“方案”一个 - 例如一个 for http,一个 fornet.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文件的位置实际上决定了该服务的“基地址”,例如在这种情况下拥有基地址并没有真正的区别/实际上并没有完全有帮助。

于 2012-12-28T13:28:23.803 回答