Convertir WCF a HTTP

Existen ocasiones en las que requerimos consumir un servicio creado en Dynamics 2012 como HTTP,  pues de forma predeterminada el servicio se crea como NetTcp.

Lo primero que debemos de hacer es configurar un usuario de Windows en el Identity del AplicationPool de IIS.

Debemos de crear una carpeta donde se almacene información relacionada el sitio web que estamos por crear, por lo tanto, nos dirigimos al explorador de directorios y creamos la carpeta GRWEstadoEmbService en la ruta C:\inetpub\wwwroot. Y dentro agregamos una carpeta llamada “bin”.

Carpeta inetpub

El siguiente paso es configurar pool de conexiones, por lo que abrimos el Internet Information Services Manager y seguimos los siguientes pasos:

  1. En el panel Connections seleccionamos el nodo Application Pools

IIS

2. En la ventana de Actions debemos seleccionar Add Application Pool

Add application pool

3. Llenamos los campos con los siguientes valores:

Name: GRWEstadoEmbServicePool
.NET CLR version: .NET CLR Version v4.0.30319
Managed pipeline mode: Integrated
Start application pool immediately: (marcado)

4. En la ventana de Application Pools damos clic derecho en el pool creado y seleccionamos Set Application Pool Default y se abre la venta que muestro a continuación:

Application pool default

5. En la propiedad Identity cambiamos la cuenta seleccionando Custom account à Y agregamos las credenciales del servidor en donde nos encontramos.

Application pool identity

Set credentials

6. En el panel de Connections expandimos el nodo Sites y damos clic derecho en el nodo Default Web Sites y seleccionamos Add Application. Seleccionamos el nombre de alias deseado y en el apartado de Application pool buscamos el que creamos anteriormente.

Pegamos la ruta de la carpeta creada en el paso 1 y probamos la conexión

Edit application

Test connection

7. El siguiente paso es ir al nodo Default Web Sites, seleccionamos el nodo GRWEstadoEmbService y en el panel Home damos doble clic en la opción Authentication.

Authentication

Y configuramos las siguientes opciones:

Anonymous Authentication Disabled
ASP.NET Impersonation Disabled
Forms Authentication Disabled
Windows Authentication Enabled

8. En el mismo nodo GRWEstadoEmbService, en el panel Actions buscamos el acceso http:

http 80

El cual nos abrirá una página web http y copiamos la url para el siguiente proceso:

http://localhost/GRWEstadoEmbService/

Teniendo configurado el IIS, entramos en Dynamics a la siguiente ruta:

Administración del sistema à Configurar à Services and Application Integration Framework à  Sitios Web.

El siguiente paso es configurar un sitio web haciendo clic en Nuevo y añadiendo los siguientes datos:

Nombre GRWEstadoEmbWebSite
Descripción Sitio web de estados de embarque
Ruta del centro de trabajo compartido del directorio virtual C:\inetpub\wwwroot\GRWEstadoEmbService
URL http://localhost/GRWEstadoEmbService

OJO: en el campo URL debemos eliminar la última diagonal para que funcione correctamente.

El último paso es entrar en Administración del sistema à Puertos de entrada y crear el servicio HTTP del web service creado en AX haciendo clic en la opción Nuevo, llenar los datos con el siguiente esquema:

Nombre del puerto GRWRFIDEstadoEmbIIS
Descripción
Adaptador HTTP
URI Seleccionar sitio web

Sitio Web

En la pestaña de personalizaciones del contrato de servicio, dar clic en Opciones de servicio y tendremos que buscar y seleccionar los métodos creados en el WS.

Seleccionar operaciones de servicio

Puertos de entrada

Activamos el puerto y de esta forma ya queda convertido el servicio WCF en HTTP.