WCF服务中基地址的用途是什么

Tho*_*mas 15 wcf

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

什么时候需要基地址?

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

   <host>
   <baseAddresses>
    <add baseAddress="net.tcp://localhost:1645/ChatServer/"/>
    <add baseAddress="http://localhost:1648/ChatServer/"/>
   </baseAddresses>
   </host>
Run Code Online (Sandbox Code Playgroud)

mar*_*c_s 26

基地址(每个"方案"一个 - 例如一个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>
Run Code Online (Sandbox Code Playgroud)

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

 <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>
Run Code Online (Sandbox Code Playgroud)

因此,使用基地址可以更容易地指定多个端点 - 它可以为您节省一些输入.

另外:请注意,如果您自行托管 WCF服务,基本地址实际上非常有用.如果你使用IIS来托管你的WCF服务,那么*.svc文件的位置确实决定了该服务的"基地址",例如在这种情况下有一个基地址并没有真正产生任何差异/实际上没有一点帮助.