На самом деле, это не относится к обычной HTTP-привязке (которая является односторонней), только к wsDualHttpBinding, которая является специальной привязкой, которая обычно не поддерживается на платформах, отличных от .NET. Использовать обратные вызовы с NetTCP так же просто, как изменить
<endpoint address ="" binding="wsDualHttpBinding" contract="WCFCallbacks.IMessage">
до
<endpoint address ="" binding="netTcpBinding" contract="WCFCallbacks.IMessage">
и
<baseAddresses>
<add baseAddress = "http://localhost:8731/Design_Time_Addresses/WCFCallbacks/Message/" />
</baseAddresses>
до
<baseAddresses>
<add baseAddress = "net.tcp://localhost:8731/Design_Time_Addresses/WCFCallbacks/Message/" />
</baseAddresses>
Просто убедитесь, что используемый вами порт не связан с каким-либо другим процессом в вашей системе, например IIS (если только вы не планируете разместить свой сервис внутри IIS).