I'm installing the Web 8.5 content manager on Windows Server 2016. It's a local installation, and my hostnames won't be available via DNS, so I started off by adding entries in the hosts file for sdlweb
and topman
pointing to the interface where Tridion will run. In the installer website step, I specified sdlweb
and port 80. The intention is to have topology manager run at topman
and port 80.
At this point, the installer tells me that it can't go any further because the port is occupied. There are no websites configured in IIS yet, but:
(Get-NetTCPConnection -LocalPort 80).OwningProcess
gives me the SYSTEM process. This makes sense: I expect HTTP.SYS to be listening here, even if the port is not truly "occupied".
Changing my hosts file so that the names don't match the ones I'm entering in the installer allows me to proceed, albeit with a warning about being unable to validate the host header.
Unfortunately, this isn't an effective workaround because then later in the process the installer reports a 500 error from the topology manager, presumably because it can't find the endpoint.
This is preventing me from achieving a scripted installation to my preferred design. I'll end up installing without host headers and on distinct ports, and then have to fix everything afterwards.
Why does the installer perform this check? (And what exactly is it checking? Is it just testing for an open port?) What effective workarounds might be possible? Given that I will now have to fix things up post-install, where are the two host header values used? In other words, if I only change the bindings in IIS, what would break, and how can I prevent that?
Faced with this, what do other people do? Does everyone just give up on host headers and use port numbers?