Stiamo vivendo un problema piuttosto fastidioso nel nostro ambiente di sviluppo con il seguente messaggio ...pre-login guai stretta di mano con la connessione diretta a SQL Azure
A connection was successfully established with the server,
but then an error occurred during the pre-login handshake.
(provider: SSL Provider, error: 0 - The certificate's CN
name does not match the passed value.)
... la saggezza comunemente accettata per risolvere questo il problema è impostare la porzione di connessione TrustServerCertificate su True. Tuttavia, questo non funziona in modo affidabile o coerente.
Questo particolare errore si verifica in numerose istanze, ad esempio testando il nostro servizio WCF nel nostro emulatore di Azure che comunica con istanza di SQL Azure live/ospitata o utilizzando anche SQL Management Studio. L'unico comune denominatore che abbiamo trovato è che ciò si verifica solo quando ci connettiamo direttamente a SQL Azure anziché quando è ospitato e Azure sta parlando direttamente a SQL Azure (che funziona).
Ho provato un certo numero di tattiche per risolvere il problema (come quello dettagliato here), ad esempio credendo che fosse collegato alla connessione e rimuovendo il pool e altre modifiche alla stringa di connessione. Ma ahimè, nessuno è conclusivo e più irritante è che l'errore è intermittente e impedirà l'accesso per un breve periodo di tempo prima che si risolva magicamente.
Altri fattori che ho eliminato.
- Stiamo utilizzando il Transcient Application Block per tentare di recuperare da questi errori, ma no.
- Il nostro ufficio non ha un server proxy con la nostra connessione ai servizi ospitati da Azure.
Qualcun altro ha riscontrato questo problema o ha qualche suggerimento?
Hummm ... un paio di idee: hai provato a copiare questo database in un altro? Mi chiedo se ci sono problemi sul server in cui ti trovi attualmente. In effetti, hai provato in un altro data center solo per i calci? Se il problema persiste, potrebbe essere il driver stesso? Sei sicuro di utilizzare i driver più recenti/SSMS più recenti? Dico questo perché quando si esegue l'hosting in Azure, sembra funzionare, quindi mi chiedo se si tratta di un problema di driver. –
Grazie per il feedback.Stiamo girando su un sistema multi-tenantato che esegue essenzialmente lo stesso database? Questo potrebbe causare qualche problema particolare? Ho scaricato il nuovo SQL Native Client 11 ma ho riscontrato lo stesso problema. Non sono troppo sicuro dei passaggi necessari per spostare Data Center, è un sistema pesante, quindi non sono sicuro di quanto possa essere ... – SeanCocteau
Ah: è un sistema pesante? Hummm ... Ho visto, in rari casi, una condizione specifica che si verifica quando il database SQL è sottoposto a pesanti richieste di accesso. L'errore che ho visto è stato tuttavia sulla falsariga di un errore di accesso; non esattamente lo stesso problema. Personalmente tratterei questo errore come un difetto transitorio; dovresti essere in grado di personalizzare il blocco transitorio e aggiungere questo errore specifico come errore transitorio per riprovare (per impostazione predefinita questo errore non è considerato di natura transitoria, quindi il blocco non tiene conto di esso a meno che tu non lo dica). Questo potrebbe fare il trucco. –