He estado tratando de portar un servicio web heredado de WSE 3 a WCF. Como el objetivo es mantener la compatibilidad con clientes WSE 3 hacia atrás, he seguido las instrucciones en este article.HTTP 400 Error de solicitud incorrecta al intentar agregar una referencia web al servicio WCF
Después de mucho ensayo y error, puedo llamar al servicio WCF desde mi cliente WSE 3. Sin embargo, no puedo agregar o actualizar una referencia web a este servicio desde Visual Studio 2005 (con WSE 3 instalado). La respuesta es "La solicitud falló con el estado HTTP 400: Solicitud incorrecta". Recibo el mismo error al intentar generar el proxy usando la utilidad wsewsdl3. Puedo agregar una referencia de servicio usando VS 2008.
He intentado alojar el servicio en IIS 7.5 en Windows 7 y Windows 2008 Server R2 con el mismo resultado. ¿Alguna solución o sugerencia de solución de problemas?
Aquí están las secciones relevantes del archivo de configuración para mi servicio WCF.
<system.serviceModel>
<services>
<service behaviorConfiguration="MyBehavior"
name="MyService">
<endpoint address="" binding="customBinding" bindingConfiguration="wseBinding"
contract="IMyService" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<customBinding>
<binding name="wseBinding">
<security authenticationMode="UserNameOverTransport" />
<mtomMessageEncoding messageVersion="Soap11WSAddressingAugust2004" />
<httpsTransport/>
</binding>
</customBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="MyBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="MyCustomValidator" />
</serviceCredentials>
<serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="MyRoleProvider" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
ACTUALIZACIÓN: Después de probar la sugerencia trazado de Pablo, he determinado que la excepción es System.Xml.XmlException: El cuerpo del mensaje no se puede leer porque está vacío
Por desgracia, eso no parece ser de mucha ayuda. Otra cosa que noté fue que había un atributo httpsGetEnabled separado del elemento serviceMetadata. Agregué eso y lo configuré en verdadero, ya que este es un servicio https, pero el resultado fue el mismo. Parece que, por algún motivo, WCF no reconoce que se trata de una solicitud de metadatos.
cuando escribe la URL wsdl en IE ¿lo ve?si agrega una referencia de VS 2010, ¿funciona? –