Caso
Estoy intentando desplegar un servicio WCF en IIS con dos endpoints http y net.tcp.
Error
Al intentar visualizar el servicio en el navegador me generá el siguiente error:
There is no compatible TransportManager found for URI ‘net.tcp://localhost/Cliente/SIS/Infraestructura.SIS.WCF/Service.svc/mextcp’. This may be because you have used an absolute address that points outside of the virtual application, or the binding settings of the endpoint do not match those that have been set by other services or endpoints. Note that all bindings for the same protocol should have the same settings in the same application.
Solución
Al respecto hay varias soluciones googleando.
1. Modificar el web config para eliminar la línea <httpRuntime targetFramework="4.5"/>
Antes:
<system.web>
<compilation debug="true" />
<httpRuntime targetFramework="4.5"/>
</system.web>
Después:
<system.web>
<compilation debug="true" />
</system.web>
2. En caso de no funcionar y tener el servicio expuesto como net.tcp, eliminar el atributo maxConnections del netTcpBinding. Aún desconozco que relación tiene esto con el error, pero funciona!
3. En otros casos, aplica que si el servicio esta siendo hospedado en IIS, sobra en el web.config un baseAddresses para el servicio.
Links relacionados.
- http://stackoverflow.com/questions/11687364/there-is-no-compatible-transportmanager-found-error-for-net-tcp-wcf-service-m
- http://www.c-sharpcorner.com/Blogs/6951/how-to-solve-there-is-no-compatible-transportmanager-found-f.aspx
- https://social.msdn.microsoft.com/Forums/vstudio/en-US/bce81748-0f09-498f-ab3c-d48c02661b27/wcf-in-subdomainsubdirectory