Changing an Inedo Product’s URL with the Integrated Web Server

KB#1014: Last Updated September 22, 2020

If you installed an Inedo Product using Inedo Hub, you can change the URL in the Configuration tab of the Inedo Hub desktop application.

All Inedo products can run using an Integrated Web Server instead of IIS. While this offers a simpler configuration and installation, the integrated web server lacks many of the advanced features of a full-fledged web application server, and certain configuration is far from obvious. For example, this post will cover binding the integrated web server to a host name.

Host Names

Binding a web site to a host name is a familiar task to anyone that has administered a site. In IIS 7, it’s usually accomplished with a configuration dialog similar to this one:

IIS 7 Site Binding

Our product’s integrated servers also allow you to bind to a host name, but in a less obvious manner.

Host Names with our Product’s Web Servers

For BuildMaster and Otter follow the steps below. For ProGet the steps are actually the same, except ProGet uses a single service for both web- and back-end processing, so there are fewer options. But the syntax is identical.

Refer to this table – depending on which product you are using, enter the coinciding name, or abbreviation, into each space that has a red [product’s name], [service], or [shared config].

The Inedo Product You’re Using [product’s name] [service] [shared config]
BuildMaster bmservice Shared Config
ProGet ProGet.Service Shared Config
Otter Otter.Service Shared Config

[product’s name] uses the HTTP.SYS driver to manage HTTP requests, and this driver requires that bindings are reserved at a system-wide level. The service provides a utility to help with this.

  1. Shut down the [product’s name] web server service.
  2. Open an elevated command prompt on the [product’s name] server and navigate to the [product’s name] Server directory (by default, this is C:\[product’s name]\Service)
  3. Run >[service].exe; this will open a text-based menu with options like this:
    * [product's name] Service
    * Copyright c 2008 - 2014, Inedo, LLC
    * [H] Display Help
    * [Q] Quit
    * Actions:
    *  [ 1] Install
    *  [ 2] InstallWeb
    *  [ 3] Uninstall
    *  [ 4] UninstallWeb
    *  [ 5] Run
    *  [ 6] ListReservations
    *  [ 7] ReserveUrls
    *  [ 8] DeleteReservations
    *  [ 9] AllowServiceControl
  4. Type 7 at the prompt, then press enter; this will prompt for several fields
    • Urls –  enter the host name and port;
        for example: http://buildmaster:80/ would bind to http://buildmaster as the host name at port 80. Note that the port and trailing slash are both required. enter a semi-colon separated list of names to reserve
    • User – the user account which will run the web site (May be LocalSystem, NetworkService, or any other user account); this user will own the url
  5. Note that you can also view and delete reservations with options 6 and 8.
  6. Update the [shared config] by changing (or adding) the Urls from above into the Urls attribute on the WebServer node.
      <ConnectionString>[SQL Server database connection string]</ConnectionString>
      <EncryptionKey>[32-character hex key for stored secrets]</EncryptionKey>
      <WebServer Enabled="[true/false]" Urls="http://buildmaster:80/;http://*:8622/" />
  7. Start the [product’s name] web server service.

[product’s name] should now be accessible using the host name you have specified, provided your DNS/hosts file has been properly configured.