Der er en timeout, før netværkshardwaren rapporterer forbindelsestimeout til netværksdriverne, som igen giver besked til de programmer, der venter på netværks-IO. Du kan bekræfte transportlags timeouts via telnet-servernavn 1433 (forudsat at din sql-server lytter på port 1433).
Men 3 sekunder er alt for kort til en proces til at initialisere netværks-API'erne (forudsat at din webapp er i sin egen applikationspulje), sende anmodning og vente på, at hardwaren får timeout. Opdatering af BIOS/firmware/driver vil sandsynligvis ikke reducere responstiden så meget.
Det ville være bedre at udføre forbindelsen asynkront. Jeg foreslår ikke at bruge EndInvoke til at afslutte det asynkrone opkald, da uheldige brugere muligvis stadig skal vente 3 hele sekunder for at se noget svar, når databasen er nede. Måske er et Ajax-opkald bedre. Hvis du har mange brugere, der konstant rammer dit websted, vil du måske cache resultatet af forbindelseskontrol og opdatere det på en måde, der giver mening for dine brugere.