wcf - puertos - no se pudo distribuir el mensaje porque el servicio en la dirección de extremo
Cómo ejecutar el servicio WCF en un puerto específico (4)
Especifique el puerto en la dirección del punto final. Consulte la sección ''Definición de direcciones de punto final en el código'' en este artículo para obtener más detalles.
Tengo un servicio .Net 4.0 WCF ejecutándose en IIS. No he especificado un puerto así que supongo que se está ejecutando en el puerto 80. Necesito instalar mi servicio en un servidor donde el puerto 80 ya está siendo utilizado y el tipo de red me había pedido que cambiara mi servicio para ejecutarlo en el puerto 443. ¿Cómo funciona? ¿Hago esto? Supongo que se puede configurar en app.config pero no puedo encontrar un artículo que me muestre cómo hacerlo.
Aquí está mi app.config actual:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
Normalmente, debe tener un nodo de servicios con al menos un nodo de servicio y cada uno con puntos finales, donde puede especificar el puerto. Ver más en: http://msdn.microsoft.com/en-us/library/ms733932.aspx
Por ejemplo:
<services>
<service name="MyNamespace.myServiceType">
<endpoint
address="net.tcp://0.0.0.0:8000" binding="basicHttpBinding"
bindingConfiguration="myBindingConfiguration1"
contract="MyContract" />
</service>
</services>
Podemos hacerlo usando el archivo .csproj del proyecto WCF (en caso de usar VS). Simplemente cambie el valor de esta etiqueta xml en su archivo correspondiente:
Para ejecutar el servicio en el puerto número 60000,
<DevelopmentServerPort>60000</DevelopmentServerPort>
Supongo que está ejecutando sus servicios en los protocolos net.tcp.
1) Edite sus enlaces (haga clic con el botón Default Web Site
seleccione Edit Bindings
2) lado del servidor
<service name="YouServiceNameSpace.YourService">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="YourBinding" contract="YourContract" />
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange" />
</service>
3) Lado del cliente
<endpoint address="net.tcp://YourHost:443/YourServiceDirecotry/YourService.svc"
behaviorConfiguration="YourBehavior" binding="netTcpBinding"
bindingConfiguration="YourTcpBinding" contract="YourContract"
name="YourContractName" />