net.tcp
es simplemente el esquema URI utilizado dentro de Windows para identificar los puntos finales que se puede acceder a través de TCP.
Del mismo modo, net.msmq
y net.pipe
, son los esquemas URI para hacer frente a los puntos finales que utilizan el MSMQ protocol y Named Pipes protocol, respectivamente.
El prefijo net
en los tres indica que el esquema de URI se diseñó únicamente para su uso en la plataforma Microsoft .NET y no es generalmente aceptado en Internet. (Otros esquemas de URI, como http
y ftp
tienen significados generalmente aceptados y, por lo tanto, se utilizan dentro de WCF sin ningún prefijo). El prefijo net
sirve, por lo tanto, como advertencia de que el punto extremo asociado tendrá una interoperabilidad limitada/no con otras aplicaciones que no se ejecutan en la plataforma .NET.
Ejemplo URI:
net.tcp://localhost:7272
net.msmq://somemachine/publicQueue
net.pipe://machine.domain.com/somePipe
BARRA LATERAL: Mientras MSMQ y canalizaciones con nombre son claramente Microsoft protocolos y, por tanto, una falta de interoperabilidad no es sorprendente, TCP es el protocolo base de Internet y por lo tanto, seguramente su uso en WCF no debería ser .NET específico?
Bueno, la interoperabilidad en WCF ya está a cargo de SOAP y HTTP, que se ejecutan sobre TCP. Si desea interoperabilidad sobre TCP, use uno de esos protocolos.
Por lo tanto, Microsoft buscaba ofrecer una alternativa de comunicación en la que el objetivo principal fuera la performance, en lugar de la interoperabilidad. TCP fue la elección lógica, pero TCP es un protocolo de nivel relativamente bajo, que requiere un comportamiento adicional y se implementan los valores predeterminados para trabajar de una manera directa para un marco de mensajería como WCF. Además, no existe un esquema de URI generalmente aceptado para los recursos accesibles de TCP y, por lo tanto, Microsoft necesitaba inventar uno. Por lo tanto, nació net.tcp
.
Mientras que los URI mismos no indican necesariamente exactamente la que la unión de utilizar, proporcionan una pista. Según la respuesta de Simon Mourier, los enlaces actualmente disponibles dentro de WCF se pueden encontrar en here. Entonces, por ejemplo, una dirección net.tcp
podría indicar que se requiere NetTcpBinding, NetPeerTcpBinding o NetTcpContextBinding.
¿por qué no puedo comenzar una recompensa por esta pregunta? No vi el botón de recompensa de inicio. – smwikipedia
net.tcp es un esquema uri mientras que TCP es solo un protocolo. esto se usa para que WCF reciba o envíe un mensaje WCF a través de TCP utilizando el protocolo binario de entramado .NET al usar el enlace predeterminado. El valor predeterminado para esto es el puerto 808 y el formato de encuadre usa el encuadre de mensaje binario .net. – Sajay