WCF service configuration file question regarding

2019-01-06 18:14发布

问题:

From what I've seen the tag is ignored when hosting a WCF service in IIS. I understand that when self-hosting this is required but is this harmful or even used when operating under IIS?

ex.

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

From what I've seen you can take a config file describing a service from one machine and use that on a completely different machine and it works fine. It looks as if IIS completely ignores this section.

Thanks, kyle

回答1:

As you have guessed, the baseAddresses element is completely ignored when hosting in IIS. The service's base address is determined by the web site & virtual directory into which your wcf service is placed.

Even when self-hosting, baseAddresses is not required. It is merely a convenience that avoids you having to enter a full address for each endpoint. If it is present, the endpoints can have relative addresses (relative to the base address, that is).



回答2:

base address required for selfhosting. IIS/WAS hosts ignores the base address.



回答3:

According to the MSDN Microsoft documentation in the below link, midway through the page in the Note section states, "Services hosted under Internet Information Services (IIS) or Windows Process Activation Service (WAS) use the virtual directory as their base address."

http://msdn.microsoft.com/en-us/library/ee358768(v=vs.110).aspx