2012-09-07 9 views
9

Actualmente estamos experimentando un problema bastante molesto en nuestro entorno de desarrollo con el siguiente mensaje ...Pre-iniciar sesión males apretón de manos con conexión directa 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 sabiduría comúnmente aceptada para la resolución de este El problema es establecer TrustServerCertificate parte de la conexión a True. Sin embargo, esto no funciona de manera confiable o consistente.

Este error particular ocurre en varias instancias, por ejemplo probando nuestro Servicio WCF en nuestro Emulador Azure hablando con Instancia SQL Azure en vivo/alojado o incluso usando SQL Management Studio. El único denominador común que hemos encontrado es que esto ocurre solo cuando nos conectamos directamente a SQL Azure en lugar de cuando está alojado y Azure está hablando directamente con SQL Azure (lo que sí funciona).

He intentado una serie de tácticas para resolver el problema (como el detallado here), es decir, creyendo que estaba relacionado con la conexión y eliminando la agrupación y otras modificaciones en la cadena de conexión. Pero, por desgracia, ninguno es concluyente y más irritante es que el error es intermitente y evitará el acceso por un corto período de tiempo antes de resolverse mágicamente.

Otros factores que he eliminado.

  • Estamos utilizando el Bloque de aplicaciones Transcient para intentar recuperarnos de estos errores, pero no.
  • Nuestra oficina no tiene servidor proxy con nuestra conexión a los servicios alojados de Azure.

¿Alguien más ha experimentado este problema o tiene alguna sugerencia?

+0

Hummm ... par de ideas: ¿intentó copiar esta base de datos a otra? Me pregunto si hay problemas en el servidor en el que se encuentra actualmente. De hecho, ¿lo intentó en otro centro de datos solo por patadas? Si el problema persiste, ¿podría ser el controlador en sí? ¿Seguro que estás utilizando los últimos controladores/SSMS más recientes? Lo digo porque cuando se aloja en Azure, parece funcionar, así que me pregunto si es un problema con el controlador. –

+0

Gracias por los comentarios.Estamos ejecutando un sistema de múltiples usuarios que esencialmente ejecuta la misma base de datos? ¿Podría esto causar algún problema en particular? He descargado el nuevo SQL Native Client 11 pero he experimentado el mismo problema. No estoy muy seguro sobre los pasos necesarios para mover Data Center, es un sistema robusto, así que no estoy muy seguro de cuán factible podría ser ... – SeanCocteau

+1

Ah, ¿es un sistema robusto? Hummm ... He visto, en casos raros, una condición específica que ocurre cuando la base de datos SQL está bajo pesadas solicitudes de inicio de sesión. Sin embargo, el error que vi fue similar a una falla de inicio de sesión; no es exactamente el mismo problema. Yo personalmente trataría este error como una falla transitoria; debería poder personalizar el bloque transitorio y agregar este error específico como un error transitorio para volver a intentarlo (de manera predeterminada este error no se considera de naturaleza transitoria, por lo que el bloque no lo cuenta a menos que usted lo indique). Esto puede hacer el truco. –

Respuesta

5

necesita escanear para no IFS Winsock BSP o LSP, que no es compatible con la bandera FILE_SKIP_COMPLETION_PORT_ON_SUCCESS, como resultado principalmente de un problema no IFS LSP se está instalando.

Sólo tiene que ejecutar "netsh winsock Mostrar Catálogo" del símbolo del sistema y comprobar cualquier "bandera de servicios", que no se ve en el formato de 0x20xxx

En mi caso he encontrado que "Acelerador de velocidad "con el indicador de servicio 0x66, eliminar este software soluciona mi problema.

Más información se puede encontrar aquí: http://support.microsoft.com/kb/2568167

1

¿Cómo se ve la cadena de conexión como? No estoy seguro si usted ha intentado esto todavía, pero recuerdo haber tenido un problema similar cuando se utiliza una conexión de SQL remoto a SQL Azure y se encontró que tenía que establecer:

Trusted_Connection=False;Encrypt=True 

y eliminar cualquier tiempo de espera Conectar en la cadena del todo.

+0

Pensé que configurar el nombre de usuario y la contraseña automáticamente haría esto, pero puedo intentar configurar Trusted_Connection y ver si me ayuda. El 'SqlConnectionStringBuilder' no tiene esta propiedad incorporada, pero FWIW http://msdn.microsoft.com/en-us/library/ee621781.aspx hace referencia a esta propiedad. No tiene sentido que esto solo suceda * a veces * en función de la cadena de conexión, y el error me llevaría a creer que SQL Azure está enviando el certificado incorrecto en una mala tirada de dados, pero es posible que estés en algo. Gracias por la sugerencia. –

+0

En realidad, parece que esto ha sido reemplazado por la propiedad "Seguridad integrada". Al configurar "Trusted_Connection" manualmente en 'SqlConnectionStringBuilder', se modifica la propiedad" Seguridad integrada ". Creo que, de todos modos, el valor predeterminado es falso, pero intentaré establecerlo explícitamente y ver qué sucede. Para referencia, http://stackoverflow.com/questions/3077412/what-is-the-difference-between-trusted-connection-and-integrated-security-in-a-c –

+0

No hay dados. El problema sigue ocurriendo de forma intermitente. –

Cuestiones relacionadas