2010-09-20 11 views
6

Tengo mi servicio WCF ejecutándose con HTTPS, muestra la página de información, pero la URL siguiente "Para probar este servicio, ... con la siguiente sintaxis:" es:URL incorrecto en un hipervínculo WSDL al usar WCF (https)

svcutil.exe https://servername.group.service.com/MyService.svc?wsdl (dirección completa del servidor)

en lugar de la URL correcta https://my.service.com/MyService.svc?wsdl (hostheader asignado), ¿cómo puedo conseguirlo para mostrar la URL derecha (<URL of the Service> + ?wsdl)?

<services> 
    <service name="MyService" behaviorConfiguration="MyServer.MyServiceBehavior"> 
    <endpoint binding="basicHttpBinding" bindingConfiguration="basicHttpBigStrings" contract="IMyService"> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="MyService.MyServiceBehavior"> 
     <serviceCredentials> 
     <serviceCertificate findValue="my.service.com" x509FindType="FindBySubjectName"/> 
     </serviceCredentials> 
     <serviceMetadata httpsGetEnabled="true"/> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <basicHttpBinding> 
    <binding name="basicHttpBigStrings"> 
     <security mode="Transport"> 
     <transport clientCredentialType="None"/> 
     </security> 
     <readerQuotas maxStringContentLength="1048576" /> 
    </binding> 
    </basicHttpBinding> 
</bindings> 

Ya he intentado cambiar <serviceMetadata httpsGetEnabled="true"/> en <serviceMetadata httpsGetEnabled="true" httpsGetUrl="https://my.service.com/MyService.svc"/> pero sólo dice: "El registro ya existe para URI https://my.service.com/MyService.svc"

+0

Tengo el mismo problema. ¿Encontraste una solución en esto? – Turrau

+0

No, hasta ahora, lo siento ... – Hinek

+0

¿Está alojando este servicio en IIS? Si es así, IIS determina esa URL, no WCF. –

Respuesta

4

Ha especificado que ha establecido encabezado de host. Está configurado para SSL o simplemente Http. Recuerde, IIS UI no tiene campos para configurar el encabezado de host para SSL. necesitaría usar scripts de administrador (IIS 6.0) o netsh.exe para versiones posteriores de IIS.

+1

El Encabezado de host solo está configurado para HTTP, ¿tiene enlaces para configurar el Encabezado de host para SSL? – Hinek

+1

¿Cómo es esto una solución al problema? –

+0

Amit, ¡gracias! Después de horas y horas de buscar soluciones, esto funcionó. Hemos eliminado los encabezados de host para http y https para acomodar nuestra configuración del equilibrador de carga. Al agregarlos, solucionó el problema. Por cierto, también estábamos viendo una página en blanco con un error de 400 solicitudes erróneas al tratar de solicitar el WSDL a través de HTTPS (para cualquier persona que tenga el mismo problema). – adamisnt

0

se pueden encontrar algunos antecedentes sobre esto en la siguiente Stackoverflow link - lo primero que intentarían (dan varios escenarios diferentes que son un poco más complicados) sería establecer el URI de escucha en la definición del punto final del servicio. Cuando tuve problemas para obtener la dirección WSDL directamente en mi aplicación, pude configurar eso para corregirla. En ese caso, simplemente estaba tratando de arreglar el esquema (estábamos detrás de un BIGIP y estaba terminando SSL por lo que el esquema necesitaba ser https aunque WCF en el lado del servidor pensaba que estaba obteniendo http).

<endpoint address="https://www.sslloadbalancer.com" binding="someBinding" contract="IMyServiceInterface" listenUri="http://www.servicehost.com" ... /> 

yo creo que va a arreglar el WSDL para usted

+0

El servicio está alojado en IIS, por lo que IIS determina la URL, no puedo establecer la dirección de punto final manualmente en la configuración. – Turrau

+0

Mi ejemplo es de servicios alojados de IIS: usted sabe en qué parte de IIS está implementando su servicio, entonces ¿por qué no puede establecer la dirección de punto final en la configuración? – HintonBR

Cuestiones relacionadas