Hola Amigos,
En un proyecto reciente era necesario conectar a los servicios de Oracle CRM On Demand (OCOD) , del tipo WS3 que son en este caso los que se encuentran en la sección de Administrative services me encontré que el modo de conexión no es el mismo que para WebServices 2.0, en concreto necesitaba utilizar el de SalesAssessmentTemplateService la dirección a la que hace referencia el endpoint es algo como lo siguiente:
../Services/cte/SalesAssessmentTemplateService
Este tipo de servicios así como el cascading dropdown … etc, tienen un problema y es ue como tales no pueden ser utilizados por Visual Studio 2010
El problema se me presentaba en que la aplicación iba a ser desarrollada en VS10 y utilizaba otros servicios del contenedor 2.0, que si que usan la autentificación aceptada por VS10. Así que tras 1 día indagando, primero porque el error que daba no era demasiado descriptivo al principio:
ERROR: Server?
Investigando la traza nos dimos cuenta que es que utilizaba el protocolo WS3.
Para solucionarlo es necesario hacer un WorkAround que a mi personal mente no me gustan este tipo de chapuzas a no ser que sean necesarias (En este caso lo es) que os explico a continuación:
1. Descargar el WSE 3.0 para visual studio e instalarlo.
2. En la carpeta C:ProgramDataMicrosoftMSEnvSharedAddins buscar el fichero WSESettingsVS3.Addin y abrirlo.
3. Buscar la secciones donde ponga <Version>8.0</Version> y cambiarlas por <Version>10.0</Version>
4. Abrir Visual Studio seleccionar Herramientas > Opciones > Entornos Y comprobar que se ha agregado correctamente, en caso contrario reiniciar visual estudio.
Una vez importado el WDSL del servicio tenemos que irnos a la clase que ha generado, y cambiar la herencia que VS pone por defecto
System.Web.Services.Protocols.SoapHttpClientProtocol
Cambiarla por
Microsoft.Web.Services3.WebServicesClientProtocol
Ahora ya toca disfrutar ya no aparecerá el error tan descriptivo y maravilloso de «Server», podremos conectarnos y lanzar las operaciones.
PD: esta solución sirve para cualquier tipo de servicio que utilice WSE 3.0