Error: Canalizaciones con nombre no funcionan cuando el proceso de trabajo se ejecuta bajo la cuenta ASPNET

Síntomas

Puede recibir un mensaje de error si se cumplen todas las condiciones siguientes:
  • Un proceso de trabajo ASP.NET (Aspnet_wp.exe) se ejecuta bajo la cuenta ASPNET predeterminada.
  • No habilite la representación en dicha aplicación.
  • Utilice el proveedor de datos .NET de SQL Server o el proveedor de datos .NET de OLE DB para conectarse a una base de datos.
Puede recibir cualquiera de los siguientes mensajes de error:

Mensaje 1
OleDbException (0 x 80004005): [DBNETLIB] [ConnectionOpen (Connect()).] SQL Server no existe o acceso denegado.]
Mensaje 2
SqlException (0 x 80004005): [DBNETLIB] [ConnectionOpen (Connect()).] SQL Server no existe o acceso denegado.]
Mensaje 3
System.Data.SqlClient.SqlException: SQL Server no existe o acceso denegado
Mensaje 4
System.Data.OleDbClient.OleDbException: SQL Server no existe o acceso denegado

Causa

Cuando el proceso de trabajo ASP.NET se ejecuta bajo la cuenta ASPNET, si no habilita la suplantación para una aplicación, todos los subprocesos que ejecutan las solicitudes para dicha aplicación se ejecutan bajo la cuenta de proceso. La cuenta ASPNET no puede establecer una conexión de canalizaciones con nombre para el servidor de base de datos.

Solución

Para evitar este problema, utilice uno de los métodos siguientes:
  • Active la suplantación en la aplicación ASP.NET. Este método funciona si el usuario representado tiene acceso al equipo y al servidor de base de datos que tiene acceso.
  • Utilizar transmisión Control Protocol/Internet Protocol (TCP/IP) en lugar del protocolo Canalizaciones con nombre para conectarse a la base de datos. Para ello, agregue el atributo siguiente a la cadena de conexión:
    "Network Library =dbmssocn"
    Por ejemplo:
    "User ID=myUserId;Password=myPassword;Initial Catalog=Pubs;Data Source=myServer;Network Library =dbmssocn"
  • Compruebe los protocolos que están habilitados en la base de datos. Para una base de datos de SQL Server, ejecute la herramienta de red del servidor para comprobar si los protocolos específicos.

Estado

Microsoft ha confirmado que se trata de un error de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Referencias

Para obtener información adicional acerca de la seguridad ASP.NET, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

Introducción a la seguridad ASP.NET 306590

Para obtener más información acerca de la sección < processModel >, consulte la siguiente documentación de MSDN:
Propiedades

Id. de artículo: 315159 - Última revisión: 22 ene. 2017 - Revisión: 2

Comentarios