viernes, 15 de abril de 2011

Varios Servicios Web en un unico Servidor

Se deben de crear tantas instancias del servicio como bases de datos queremos atacar desde el web services. Para poder configurarlo de esta manera es necesario que la capa donde se encuentra instalado el servicio web y sus instancias sea la intermedia.
Creando un segundo servicio Lo primero que hay que hacer es parar los servicios instalados y hacer una copia de la carpeta Servicios que se encuentra dentro del directorio de instalación del web services de Navision: C:\Program Files (x86)\Microsoft Dynamics NAV\60\Services Y poner como nombre de la carpeta Server2 o lo que queramos. Para esto haremos lo siguiente:

  • Ir a “herramientas administrativas” y elegir servicios
  • Seleccionar “Microsoft Dynamics NAV Server” y darle STOP
  • Como ya hemos creado la copia de la carpeta services y la hemos llamado Services2 ahora hay que crear la instancia que hace referencia al servicio de la carpeta Services2.

Primero crearemos el Microsoft Dynamics Nav Server y luego el Microsoft Dynamics Nav Web Server ya que se necesitan un par de servicios por nueva base de datos un servicio web y un servicio Navision server. Para ello en la consola de comandos hay que poner lo siguiente:

sc \\ "servidor" create "nombre servicio" binpath= "ruta servicio" DisplayName= "nombre a mostar"start= "tipo arranque" type="own, shared"

En nuestro caso será de la siguiente manera:

sc \\Webservices03 create MicrosoftDynamicsNAVServer$NAV2 binpath= "C:\Program Files\Microsoft Dynamics NAV\60\Service2\Microsoft.Dynamics.Nav.Server.exe $NAV2" DisplayName= "Microsoft Dynamics NAV Server Instance 2" start= auto type= own

MicrosoftDynamicsNAV$NAV2 es para decir que va a ser una nueva instancia del mismo tipo de servicio y es necesaria en el nombre de servicio como al crear la nueva instancia. En el parámetro Type hay que poner Own

MicrosoftDynamicsNAVWS$NAV2 es una instancia del servicio para que cree el servicio web y así tener el par de servidores que necesitamos. La sintaxis para crear este servicio es la misma que para el anterior lo único es que  hay que poner en el nombre WS al final, justo antes del $, en el parámetro Type hay que poner Share

Una vez hecho esto hay que cerrar y abrir la ventana de los servicios para que aparezcan los nuevos servicios que hemos creado en este caso serian:

- Microsoft.Dynamics.Nav.Server.exe

- Microsoft.Dynamics.Nav.web.Server.exe

Configurando los servicios creados
Una vez abierta la ventana con el listado de los servicios, vamos uno de los servicios y en las propiedades en la pestaña LogOn escoger la opción this account, poner webservices@atspain, sus contraseñas y guardar. No hay que arrancar porque daría error ya que los dos MicrosoftDynamicsNavServer están tirando del mismo puerto 7046 y hay que cambiarlo junto con la instancia del servicio en el fichero CustomconfigSetting.config de la carpeta Service2. Para el servicio MicrosoftDynamicsNavWebServer no es necesario cambiar el puerto y siempre tiraremos del 7047. En el fichero CustomconfigSetting.config cambiaremos las siguientes opciones:

Add key="DatabaseServer" value="Servidor de la nueva base de datos"

Add key="DatabaseName" value="Nombre de la nueva base de datos"

Add key =”ServerInstance” value =”DynamicsNav2”

Add key="ServerPort" value="7049"

Add key="WebServicePort" value="7047"






En este caso la url sería:

http://webservices03.dominio:7047/DynamicsNAV2/ws/Services

Problemas comunes.

Error: The Microsoft Dynamics NAV Business Web Services service on Local Computer started and then stopped. Solucion: suele ocurrir cuando intentamos arrancar dos servicios que tiran contra el mismo Puerto en este caso y por configuración estándar el 7046, cambiar puerto y listo.
Error: Cuando en el explorador nos aparece lo siguiente Solución: Es un problema de acceso a la base de datos, el servicio funciona bien pero no tiene permisos de entrada a la base de datos, hay que comprobar que en la base de datos del usuario esté creado el usuario que utilizamos para conectarnos en este caso webservices y que la licencia tenga activado el granulo 91000

No hay comentarios:

Publicar un comentario