Para que Delphi 7 importe el WSDL y genere el stub correctamente de un Servicio Web implementado en WCF (Windows Communication Foundation) hay que actualizar previamente D7 y añadir una lÃnea de código.
Pasos a seguir.
1. Bajarse de la Web de Embarcadero el zip Delphi SOAP Runtime and Importer Update 2. Descomprimir el zip en una carpeta 3. Realizar previamente una copia de $(DELPHI)\Source\soap y copiar dentro el contenido de la carpeta src del zip 4. Realizar previamente una copia de $(DELPHI)\Bin\WSDLImp.exe y reemplazarlo por el que se encuentra en el zip 5. Abrir D7 y generar el stub. 6. Editar el stub generado y añadir, dentro de la sección initialization, la siguiente lÃnea:
InvRegistry.RegisterInvokeOptions(TypeInfo([Nombre del servicio]),ioDocument);
7. Añadir las directivas de compilación CLEANUP_SOAP_HEADERS;FIX_ELEM_NODE_NS al proyecto 8. Añadir al Search Path del proyecto $(DELPHI)\Source\soap
Con estos pasos se solucionan, al menos, tres problemas:
The formatter threw an exception while trying to deserialize the message: Error in deserializing body of request message for operation 'Testing'. End element 'Body' from namespace 'http://schemas.xmlsoap.org/soap/envelope/' expected. Found element 'parameters' from namespace
Cómo obtener el nombre de una máquina a partir de una IP
Para obtener el nombre de una máquina a partir de una IP, podemos utilizar el siguiente comando:
> ping -a IP
asà por ejemplo si ponemos:
> ping -a 10.120.238.17
recibimos como respuesta algo parecido a esto, donde el texto marcado en rojo es el nombre de la máquina:
Haciendo ping a 3engine.local [10.120.238.17] con 32 bytes de datos:
Respuesta desde 10.120.238.17: bytes=32 tiempo=1ms TTL=123 Respuesta desde 10.120.238.17: bytes=32 tiempo=1ms TTL=123 Respuesta desde 10.120.238.17: bytes=32 tiempo=1ms TTL=123 Respuesta desde 10.120.238.17: bytes=32 tiempo=1ms TTL=123
EstadÃsticas de ping para 10.120.238.17: Paquetes: enviados = 4, recibidos = 4, perdidos = 0 (0% perdidos), Tiempos aproximados de ida y vuelta en milisegundos: MÃnimo = 1ms, Máximo = 1ms, Media = 1ms
Hoy he descubierto que existe una medida de picor. Esta medida se llama Escala Scoville. Por lo visto uno de los pimientos mas picantes del mundo se llama Naga Jolokia con 1.000.000 SHU :-). Para hacer una comparación, decir que el aerosol de pimienta que utiliza la policia tiene unos 5.300.000 SHU