Para instalar os principais componentes do IIS e os recursos para suporte ao TCP no WCF, abra o prompt de comando (como administrador) e execute:

Dism.exe /online /Enable-Feature /FeatureName:IIS-WebServerRole /FeatureName:IIS-WebServerRole /FeatureName:IIS-WebServer /FeatureName:IIS-ApplicationDevelopment /FeatureName:IIS-Security /FeatureName:IIS-RequestFiltering /FeatureName:IIS-NetFxExtensibility /FeatureName:WAS-WindowsActivationService /FeatureName:WAS-ProcessModel /FeatureName:WAS-NetFxEnvironment /FeatureName:WAS-ConfigurationAPI /FeatureName:NetFx3 /FeatureName:WCF-HTTP-Activation /FeatureName:WCF-NonHTTP-Activation

Ou se você já possui o IIS instalado e você somente quer habilitar as features de suporte ao TCP execute:

Dism.exe /online /Enable-Feature /FeatureName:WCF-HTTP-Activation /FeatureName:WCF-NonHTTP-Activation

Execute o comando abaixo para registrar o ASP.NET:

%WINDIR%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru

E ao final faça um reset do IIS via:

iireset

Neste momento, o IIS foi instalado o suporte ao TCP e ainda precisamos configurar as aplicações para usarem este protocolo. Vamos a um exemplo.

Em uma aplicação Web do Visual Studio, nas configurações de servidor mude para o IIS e crie um diretório virtual:

Web01

Abra o IIS (execute inetmgr), e habilite o protocolo net.tcp na Web Application. Ficando assim:

Web03-1

Faça o mesmo para cada Web Site. Defina os Protocolos Habilitados como http,net.tcp.

Web03

Estas configurações fazem com que o IIS escute o protocolo TCP na porta 808 (é possível alterar a porta nos bindings do IIS e nos arquivos de configuração depois).

Voltando ao Visual Studio altere o Web.config para as configurações abaixo:

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="">
        <serviceMetadata httpGetEnabled="true"
                         httpsGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="false" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <services>
    <service name="WcfCaller.Services.HelloWorld">
      <endpoint address="" binding="netTcpBinding" 
                contract="WcfCaller.Services.IHelloWorld" />
      <endpoint address="mex" binding="mexTcpBinding" 
                contract="IMetadataExchange"/>
      <host>
        <baseAddresses>
          <add baseAddress="net.tcp://localhost:808/WcfCaller.Services"/>
        </baseAddresses>
      </host>
    </service>
  </services>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
    multipleSiteBindingsEnabled="true" />
</system.serviceModel>

Vamos agora adicionar a referência a este serviço no aplicativo cliente. Faça assim:

Web05

<system.serviceModel>
  <bindings>
    <netTcpBinding>
      <binding name="NetTcpBinding_IHelloWorld" />
    </netTcpBinding>
  </bindings>
  <client>
    <endpoint address="net.tcp://localhost/WcfCaller.Services/HelloWorld.svc"
      binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IHelloWorld"
      contract="HelloWorld.IHelloWorld" name="NetTcpBinding_IHelloWorld">
      <identity>
        <servicePrincipalName value="DOMAIN/UserName" />
      </identity>
    </endpoint>
  </client>
</system.serviceModel>