PRB: Error conexión a SQL Server desde el evento Session_OnEnd()

Seleccione idioma Seleccione idioma
Id. de artículo: 247968 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

Al conectarse a una base de datos de Microsoft SQL Server desde dentro del evento Active Server (ASP), Session_OnEnd(), la conexión con el equipo de SQL Server puede producirse un error con uno de los errores siguientes:
Descripción del número de error:-2147467259 Error: no se puede establecer una conexión de cliente de [Microsoft] [ODBC SQL Server Driver]
-o bien -
Descripción del número de error:-2147467259 Error: [Microsoft] [controlador de ODBC de SQL Server] [canalizaciones con nombre] ConnectionOpen (CreateFile())

Este problema puede producirse si se cumplen las condiciones siguientes:
  1. Está intentando establecer la conexión a SQL Server mediante la biblioteca de red Named Pipes.
  2. SQL Server se encuentra en un equipo independiente del servidor de Internet Information Server (IIS).
  3. Está intentando establecer la conexión con la base de datos desde el evento Session_OnEnd() de ASP.

Causa

La causa de este problema es doble. En primer lugar, cuando se ejecuta en el evento Session_OnEnd(), la ejecución tiene lugar en un contexto usuario diferente que en el Session_OnStart() y páginas ASP normales. Esto es un problema conocido con ASP y se describe con más detalle en el siguiente artículo de Microsoft Knowledge Base:
243828Error: Session_OnEnd el contexto de seguridad de cambios del componente InProcess
En segundo lugar, la biblioteca de red Named Pipes se utiliza para conectarse al equipo SQL Server. Cuando se conecte a SQL Server desde la página ASP a través de canalizaciones con nombre, debe validarse en el equipo cliente por SQL Server para utilizar canalizaciones con nombre. Si el equipo de SQL Server no puede validar (autenticarse) el usuario entrante, la solicitud de conexión fallará. Esto se aplica incluso si la conexión a SQL Server se está intentando utilizar la autenticación estándar. Para obtener información adicional, haga clic en el número de artículo siguiente para ver el artículo en Microsoft Knowledge Base:
159976Conectarse a Microsoft SQL Server a través de canalizaciones con nombre

Solución

Para resolver este problema, siga estos pasos:
  • Cambiar la biblioteca de red que utiliza el código de cliente para conectarse a SQL Server a Transmission Control Protocol/Internet Protocol (TCP/IP). Si utiliza TCP/IP para conectarse a SQL Server, la autenticación indicada no es necesario realizar. Puede hacerlo configurando la opción "configuración del cliente" del nombre de origen de datos (DSN) que está utilizando para conectarse a SQL Server (si está utilizando un DSN) o agregando un parámetro a la cadena de conexión indicándole conectar utilizando la biblioteca de TCP/IP. El siguiente artículo de Knowledge Base describe cómo agregar este parámetro a la cadena de conexión:
    238949Establecer la biblioteca de red SQL Server en una conexión ADO
    Además, debe asegurarse de que SQL Server está configurado para escuchar en el protocolo TCP/IP. Puede hacerlo mediante la herramienta de red del servidor con SQL Server 7.0 o a través del programa de instalación de SQL Server 6.5. Para obtener más información, consulte los libros en pantalla de SQL Server.
  • Si la aplicación Web se está ejecutando fuera de proceso, el evento Session_OnEnd() se desencadenan en el contexto de seguridad de IWAM_ local [ nombre de equipo IIS ]. En este escenario, también puede trabajar temporalmente el problema agregando una cuenta de usuario local en el equipo de SQL Server que corresponde a la cuenta IWAM_ [ nombre de equipo IIS ]. Esta cuenta de usuario local en el equipo de SQL Server debe tener un nombre de usuario idénticos y una contraseña.

Referencias

Libros en pantalla de SQL Server

Propiedades

Id. de artículo: 247968 - Última revisión: lunes, 16 de julio de 2001 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft Active Server Pages 4.0
Palabras clave: 
kbmt kbdatabase kberrmsg kbprb KB247968 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 247968
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com