While troubleshooting for one of the application, I was struck at what does IIS Binding Information means when add NamedPipe binding to IIS Website.
This is an old question, but I figured I’d add my answer since I also needed an answer for this (and maybe there are others out there who need it too).The base address of an IIS-hosted WCF service is controlled by IIS and cannot be overridden in web.config. Instead, you can control the base addresses by updating the IIS site binding information for the site you’re hosting your service in.
Most of the documentation I found online suggests using * as the binding configuration for net.pipe. But if you instead use “virtualsite.com” as the binding configuration value, the base address of your net.pipe endpoint will be “virtualsite.com” rather than the machine name.
Here is an example using appcmd to configure a site in IIS with the correct net.pipe binding:
%windir%\system32\inetsrv\appcmd.exe set site "Default Web Site" -+bindings.[protocol='net.pipe',bindingInformation='virtualhostname.com']
One note about HostnameComparisonMode, it has no effect in IIS according to MSDN:
These values have no effect when used inside of the Internet Information Services (IIS) or Windows Process Activation Service (WAS) hosting environment. In those cases, WCF uses whatever hostname comparison mode is provided by the IIS Web Site hosting the WCF services.
Instead, you have to use the mechanism I described above. I figured this out by investigating how hostname binding works in HTTP for IIS. Unfortunately, I’ve not been able to find any official documentation for this IIS-based scenario for other WCF transports.