Este error se presenta cuando se hacen aplicaciones que utilizan los WebServices de Dynamics CRM, y en realidad es un error que puede ocurrir con aplicaciones que utilizan WebServices en general, en situaciones que se requiere carga masiva de datos.
Esto hace que los settings por defecto IIS no sean suficientes, y tendremos el mensaje “Only one usage of each socket address (protocol/network address/port) is normally permitted (typically under load).”
Esto sucede en cargas grandes de datos, al abrir y cerrar conexiones.  Al cerrar la conexión, la misma entra en un estado de espera de 240 segundos (TIME_WAIT).

El problema ocurre porque por default, se usan los puertos 1024 a 5000, lo que da 3976 puertos para utilizar. Al estar realizando múltiples inserciones por segundo (lo cual significa múltiples llamados a los webservices, y cierres de conexión por segundo, los puertos se acaban rápidamente.

Pasos para solucionar el problema:

Esto  requiere cambiar (o adicionar) 2 llaves en el registry.  Como es usual se recomienda precaución al modificar el registry.  Realice este procedimiento bajo su propia responsabilidad.

1.    Incremente el rango de puertos, hasta un valor máximo de 65534. (Puede buscar otro valor de ajuste para su caso en particular).
o    Use Regedit, y edite HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort (si la llave no existe, haga una nueva como DWORD )
o    Ajuste el valor como DECIMAL a 65534, u otro valor de ajuste que considere conveniente para su caso.

2.    Reduzca el TIME_WAIT de las conexiones, para que los puertos sean reciclados más pronto:
o    Use Regedit,  y editar HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\TCPTimedWaitDelay (si no existe, crearla como DWORD )
o    Ajuste el valor a 30 cómo decimal.

Leave a Reply

Your email address will not be published. Required fields are marked *