2010-03-02 28 views
5

Hola

Desarrollamos el servicio web utilizando el servicio WCF y alojado en la máquina del servidor Windows 2003 con IIS 5.1. WCF alojado en basicHttpBinding.

cuando intenta acceder al wsdl del servicio "* .svc? Wsdl" generando un wsdl incorrecto, que wsdl no se puede usar en clientes java y php.
al comprobar el WSDL en
WCF wsdl wsdl: import location, soap: address location tiene el nombre de la máquina?

<wsdl:import namespace="xxxxx" location="http://machine name/xxx/xxx.svc?wsdl=wsdl0"/> 
<soap:address location="http://machine name/xcxx/xxx.svc" /> 

¿Cómo puedo eliminar la máquina y sustituirla con mi URL del Web?
¿Cómo puedo generar un documento WSDL completo como lo que generará el servicio web ASMX?

Respuesta

2


Navegué y obtuve la solución para mi problema lo siguiente me ayudó mucho.
Espero que estos ayuden a otros.


NRK

Para la generación de WSDL plana
http://my-tech-talk.blogspot.com/2008/07/adding-flatwsdl-to-wcf-webservice.html
http://weblogs.thinktecture.com/cweyer/2007/05/improving-wcf-interoperability-flattening-your-wsdl.html
http://isinghblog.blogspot.com/2009/03/wcf-service-and-adobe-livecycle_10.html

Para chaning nombre de host que se reflejará en la dirección de WSDL
http://forums.asp.net/p/1096811/1659596.aspx

3

Así es como me fijo:

  1. En sus enlaces de IIS, asegúrese de incluir un nombre de host.

  2. Instalar este hotfix: http://support.microsoft.com/kb/971842. Hay enlaces en la página KB para descargar la revisión. La revisión requiere un reinicio para mí.

  3. para "activar" la revisión, añada lo siguiente al elemento de comportamiento en su web.config:

 
    <useRequestHeadersForMetadataAddress> 
     <defaultPorts> 
      <add port="80" scheme="http" /> 
      <add port="443" scheme="https" /> 
     </defaultPorts> 
    </useRequestHeadersForMetadataAddress> 
+0

Esto hizo el truco para mí. ¡Gracias! –

+0

Matt, http://archive.msdn.microsoft.com/KB971842 ese hofix dice específicamente que no es para el servidor Win 2003. ¿Cómo lo aplicaste al 2003? – Roger

+0

@Roger, en realidad dice específicamente que si está en Windows 7 o Windows Server 2008 R2, entonces debe aplicar una revisión diferente (KB971842). Si está en Windows 2003, DEBERÍA aplicar la corrección para KB971842. http://code.msdn.microsoft.com/KB971842 –