When browsing to a service hosted in IIS I get an error that the protocol does not have an implementation of HostedTransportConfiguration type registered. What can cause this?

Two things to look at are the IIS site bindings and the installed activation services. All of these examples use net.tcp with default settings but you can substitute in other protocols and options similarly following the same checklist.

First, a configuration for the protocol scheme needs to be associated with the web site. This is normally done when the web site is first set up, but you can add additional site bindings from the command line using the appcmd utility.

appcmd set site "Default Web Site" -+bindings.[protocol='net.tcp',bindingInformation='808:*']

Second, the site binding for the web site needs to be enabled on the particular application that is to be activated. Again, this is usually done when the web site is first set up but can be changed using the appcmd utility.

appcmd set app "Default Web Site/myapp" /enabledProtocols:net.tcp

Finally, the service that hosts the protocol handler needs to be installed and running. You can check the status of the activation service using the sc utility.

sc query nettcpactivator

If the service is not present or is stopped, then that likely means that the Windows component (for client versions of Windows) or the server role and features (for server versions of Windows) are not enabled. The pkgmgr utility can be used to update the component setup.

pkgmgr /iu: WCF-NonHTTP-Activation