none
Número de conexiones al webservice del CRM RRS feed

  • Pregunta

  • Tengo un CRM Dynamics 4.0 instalado en un servidor y una pantalla desarrollada en .NET que llama al webservice del CRM. La pantalla tiene varios controles: 2 combos y 3 grids. Por lo visto, cada control abre una conexión al webservice. Si hay muchos usuarios accediendo a esta pantalla o la pantalla devuelve muchos registros de base de datos, la pantalla se cae diciendo que no se ha podido conectar al servidor remoto.
    ¿Se puede controlar el número de conexiones? ¿Cómo puedo hacer para que no se caiga la página?
    miércoles, 1 de julio de 2009 10:37

Todas las respuestas

  • Hola Maria.

    Por algun motivo en especila deberias de controlar el numero de conexiones ?, es decir ... tienes mucha razon al decir que cada llamada al crm abre una conexion al web services, pero todo se podria solucinonar con un patron, yo personalmente para todas las conexiones al crm utilizo el Singleton, que solo te permite tener 1 sola conexion abierta, las demas conexiones se cuelgan a la ya existente.

    En este link te explican exactamente todo lo que hace y como se hace el patron singleton
    http://msdn.microsoft.com/es-es/library/bb972272.aspx

    Saludos

    Atilio.
    miércoles, 8 de julio de 2009 15:34
  • Hola,

    En este post del foro hay más información sobre el tema http://social.microsoft.com/Forums/en-US/dynamicses/thread/1daa9049-aec6-44d5-bfc4-39a44015cc59

    El problema es basicamente el número de sockets que se pueden abrir en un periodo de tiempo ya que estos tardan en cerrarse. Como se comenta en el post hay varias técnicas para evitar estos problemas.

    La idea del singleton no es mala, el principal problema es que si usas la misma conexión no estás impersonando a los usuarios. Es decir todos usan las mismas credenciales con lo cual puedes tener problemas de seguridad. También mencionar que puedes conseguir el mismo efecto usando UnsafeConnectionSharing sin tener que implementar un singleton, .Net se encarga de reutilizar la conexión. Es más, bien usado el UnsafeConnectionSharing con GroupNames puedes llegar a permitirte tener una única conexión por usuario mitigando el problema del número de conexiones sin llegar a tener problemas de seguridad.

    Un saludo
    Marco Amoedo - http://marcoamoedo.com
    miércoles, 15 de julio de 2009 22:59