2011-12-15 12 views
12

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.Cómo ejecutar el servicio WCF en un puerto específico

Aquí es mi app.config actual:

<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name=""> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 

+1

Puede asignar anoter de puertos en el IIS. Simplemente haga clic derecho en su sitio web que tiene el Servicio WCF o si la aplicación de servicio WCF es un sitio web en su IIS luego seleccione editar enlaces, ahora puede cambiar el http para escuchar en un puerto diferente en lugar de 80. – Rajesh

Respuesta

5

Supongo que está ejecutando sus servicios en los protocolos net.tcp.

1) Editar las fijaciones (Haga clic derecho Default Web Site seleccione Edit Bindings

enter image description here

2) del lado del servidor Lado

<service name="YouServiceNameSpace.YourService"> 
<endpoint address="" binding="netTcpBinding" bindingConfiguration="YourBinding" contract="YourContract" /> 
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange" /> 
</service> 

3) Cliente

<endpoint address="net.tcp://YourHost:443/YourServiceDirecotry/YourService.svc" 
    behaviorConfiguration="YourBehavior" binding="netTcpBinding" 
    bindingConfiguration="YourTcpBinding" contract="YourContract" 
    name="YourContractName" /> 
+0

Tenga en cuenta que el punto 1 en lo anterior asume que ha iniciado IISManager y navegado a la conexión correspondiente al servidor en el que se ejecuta su página web. –

1

Normalmente, debe tener un nodo de servicios con al menos un nodo de servicio y cada uno con puntos finales, donde se 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> 
+0

Estoy usando. Net 4.0 por lo que es una configuración simplificada. Vea aquí http://msdn.microsoft.com/en-us/library/ee530014.aspx Esto se suma al problema ya que no tengo un servicio ya configurado que pueda cambiar. –

+0

@SteveChadbourne Aún puede especificar un punto final y una dirección, ¿no? – MPelletier

+0

No importa, lo entiendo. Sí, cómo especifico el puerto ... hmmm ... – MPelletier

0

especificar el puerto en la dirección del punto final. Consulte la sección 'Definir direcciones de punto final en el código' en el artículo this para obtener más detalles.

+0

Eso solo funcionará si usted está alojando su servicio WCF, de lo contrario, el entorno de alojamiento (IIS) dictará la dirección del punto final del servicio a un gran extent ... –

5

Podemos hacerlo utilizando el archivo .csproj del proyecto WCF (en caso de f utilizando VS) .just cambiar el valor de esta etiqueta XML en el archivo correspondiente:

para ejecutar el servicio al número de puerto 60000,

<DevelopmentServerPort>60000</DevelopmentServerPort> 
Cuestiones relacionadas