关于WCF服务配置文件中的<baseAddresses>标签问题

19

据我所见,在IIS中托管WCF服务时,<serviceDebug>标签被忽略。我知道在自托管时需要这个标签,但在IIS下运行时是否有害或者根本没用呢?

<system.serviceModel>
  <service blah blah blah>
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost/blah" />
      </baseAddresses>
    </host>
   </service>
</system.serviceModel>

根据我的观察,您可以将描述服务的配置文件从一台机器上取下来并在另一台完全不同的机器上使用,而且它可以正常工作。看起来IIS完全忽略了这个部分。

谢谢, 凯尔

3个回答

35

正如你所猜测的那样,当在IIS中托管服务时,baseAddresses元素将完全被忽略。服务的基地址由您的WCF服务放置在其中的网站和虚拟目录确定。

即使是自承载,也不需要使用baseAddresses。它只是一个方便之处,避免了您为每个终结点输入完整地址。如果存在,则终结点可以具有相对地址(相对于基地址)。


3
如果没有指定基础地址(baseAddress),相对地址(endpoint)就无法工作,即使忽略了基础地址的URL也是如此。 - codeulike

2

2
自托管需要基本地址。IIS/WAS主机会忽略基本地址。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接