Essencialmente, você está tentando contornar o que parece ser uma implementação ruim de outra pessoa. Isso parece razoável para mim e, às vezes, isso é uma necessidade. Se este programa está realmente "travando" ao tentar se conectar a um banco de dados, mas não a outro, ao contrário de, oh, você sabe, exibir uma mensagem de erro, isso é muito fraco.
Eu tenho uma solução de espera para isso no Linux ("redir") ... mas não no Windows; no entanto, encontrei isso na máquina do Google:
Eu testei agora com a versão "Cygwin" - não é necessário instalar, tem um exe e uma DLL e "funcionou" no meu laptop com Windows 7. Um pequeno bônus, ele tem uma opção --log-to-stdout
que, combinada com >
em um arquivo, registra os bytes cheirados do fluxo (pode ser uma leitura interessante). Eu não tenho um SQL Server à mão, mas eu testei com alguns outros serviços TCP e parece funcionar como pretendido - ele escuta em um soquete local, e quando as conexões entram, ele faz uma conexão com um soquete designado uma máquina remota e liga as extremidades dos tubos. Ouvindo em 1433, "deveria" fazer o truque.
Vai no meu kit de ferramentas, de qualquer forma.