Saltar al contenido

EventLog: el proveedor TCP del servidor no pudo escuchar [ ‘any’ 1433]. El puerto TCP ya está en uso

Puede darse el caso de que halles alguna incompatibilidad con tu código o trabajo, recuerda probar siempre en un ambiente de testing antes subir el código al proyecto final.

Solución:

Porque netstat no indica que haya nada escuchando en el puerto 1433, eso deja la posibilidad de que un cliente ya esté usando el puerto 1433 cuando SQL intenta iniciarse. De la publicación de blog de SQL Server Premier Field Engineer sobre “El puerto TCP ya está en uso”:

La segunda situación implica un cliente que se ejecuta en el servidor utilizando el mismo puerto dinámico que SQL Server. Cada sesión de TCP requiere dos puntos finales: un punto final de cliente y un punto final de servidor. Cada punto final es una combinación de dirección IP/puerto, también conocida como socket TCP. Normalmente, el código del socket del cliente le pedirá al sistema operativo que proporcione un puerto de un rango de puertos dinámicos. El socket del servidor es el puerto IP/TCP del servicio al que se conecta el cliente (SQL Server, por ejemplo).

El intervalo de puertos dinámicos predeterminado puede incluir el puerto 1433. Puede comprobarlo con netsh int ipv4 show dynamicportrange tcp.

… si tiene un cliente (piense en los servicios del sistema del sistema operativo Windows) que se inicia ANTES de que lo haga SQL Server, podría usar TCP/1433 para su socket de cliente. … Entonces, ¿cómo arreglas y previenes una situación como esta? Hay otra característica dentro del sistema operativo que le permite decirle al sistema operativo los puertos TCP en el rango de puertos dinámicos que deben ser EXCLUIDOS. Todo lo que se necesita es ejecutar lo siguiente con un símbolo del sistema administrativo:

netsh int ipv4 add excludedportrange tcp startport=1433 numberofports=1 store=persistent

Después de realizar esa configuración, el sistema operativo no otorgará ese puerto a ningún cliente. Los servicios aún pueden escucharlo, pero evita que los clientes lo obtengan cuando le solicitan al sistema operativo un puerto dinámico.

versión IPv6

El cartel original indicaba que aunque el error registrado mencionaba IPv6, su problema resultó ser IPv4. pero si tenido Si ha habido un conflicto de puerto IPv6, se puede seguir el mismo proceso para IPv6.

netsh int ipv6 show dynamicportrange tcp

netsh int ipv6 add excludedportrange tcp startport=1433 numberofports=1 store=persistent

Puede ser más de un año, pero espero que esto ayude a otros también.

No pude confirmar esto, pero parece que la misma instancia del servidor SQL asigna el mismo valor de puerto a todos los puertos.

Deberá abrir el Administrador de configuración de SQL Server (si no puede encontrarlo, https://blog.sqlauthority.com/2019/03/01/sql-server-sql-server-configuration-manager-missing-from -menu de inicio/)

ingrese la descripción de la imagen aquí

Solo asigne una IP para usar el puerto 1433 y configure otras para el valor dinámico, configurando los puertos dinámicos TCP en 0 y en blanco el valor del puerto TCP. Elegí 127.0.0.1 (IP de bucle invertido @ local) para enlazar. Reinicie su servicio de SQL Server.

Reseñas y puntuaciones del artículo

Más adelante puedes encontrar las notas de otros gestores de proyectos, tú también eres capaz insertar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *