This error indicates that there is no base address handling the request on that particular scheme (HTTP/HTTPS) and base address (URL). For example, your WCF Web based address in web.config may be this:
- http://mysite.com/myservice.svc (WCF allows a single based address per scheme HTTP/HTTPS)
IIS may be configured to support multiple base addresses like these:
- http://mysite.com
- http://www.mysite.com
If you try to load the URL http://www.mysite.com/myservice.svc, IIS resolves the address, but the WCF setting is in conflict, and an error is shown. Using the web.config, we can add a setting to filter the IIS base address that is not mapped to the WCF based address (add the setting in the system.serviceModel
node).
<serviceHostingEnvironment>
<baseAddressPrefixFilters>
<add prefix="http://www.mysite.com" />
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
This should eliminate the conflict, and the request should go to the base address defined by web.config. In addition, a common mistake is that baseAddressPrefixFilters
may be set to the same base address of the WCF service. This filters out the base address and causes a “Could not find base address error
”. Following our previous scenario, if you add the setting below, the error will be recreated.
<serviceHostingEnvironment>
<baseAddressPrefixFilters>
<add prefix="http://mysite.com" /> (filters The wcf base address – error is shown)
<add prefix="http://www.mysite.com"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
I hope this helps!