Hay un tiempo de espera antes de que el hardware de red informe el tiempo de espera de conexión a los controladores de red, que a su vez notifica a los programas que esperan E/S de red. Puede verificar los tiempos de espera de la capa de transporte a través de telnet servername 1433 (suponiendo que su servidor sql esté escuchando en el puerto 1433).
Pero 3 segundos es demasiado corto para que un proceso inicialice las API de red (suponiendo que su aplicación web esté en su propio grupo de aplicaciones), envíe una solicitud y espere a que el hardware se agote. La actualización del BIOS/firmware/controlador probablemente no reduzca tanto el tiempo de respuesta.
Sería mejor realizar la conexión de forma asíncrona. No sugiero usar EndInvoke para finalizar la llamada asincrónica, ya que es posible que los usuarios desafortunados aún deban esperar 3 segundos completos para ver alguna respuesta cuando la base de datos está inactiva. Tal vez una llamada de Ajax sea mejor. Si tiene muchos usuarios visitando constantemente su sitio web, es posible que desee almacenar en caché el resultado de la verificación de conectividad y actualizarlo de manera significativa para sus usuarios.