Aparece un mensaje de error cuando solicita una página ASP que se conecta a una base de datos de Access en IIS 7.0: "Error '80004005' del motor de base de datos Microsoft JET"

Seleccione idioma Seleccione idioma
Id. de artículo: 926939 - Ver los productos a los que se aplica este artículo
Importante: este artículo contiene información que muestra cómo reducir la configuración de seguridad o cómo desactivar las opciones de seguridad en un equipo. Puede realizar estos cambios para solucionar temporalmente un problema concreto. Pero antes de realizarlos, recomendamos que evalúe los riesgos asociados a esta solución temporal en su entorno concreto. Si decide implementar esta solución temporal, tome las medidas adicionales oportunas para ayudar a proteger el equipo.
Expandir todo | Contraer todo

Síntomas

Tenga en cuenta la situación siguiente. En un servidor web que está ejecutando Servicios de Internet Information Server (IIS) 7.0 de Microsoft, aloja una página Active Server (ASP) que se conecta a una base de datos. El proveedor de datos de la página ASP es el proveedor de datos Microsoft.Jet.OLEDB.4.0. El origen de datos de la página ASP es un archivo de base de datos de Microsoft Access (.mdb). En esta situación, puede recibir un mensaje de error similar al siguiente cuando solicita la página ASP:
Error '80004005' del motor de base de datos Microsoft JET
Error no especificado

Causa

Este problema puede producirse si IIS 7.0 está configurado para cargar el perfil de usuario actual para una identidad del grupo de aplicaciones. Esto puede producir problemas de compatibilidad con aplicaciones basadas en ASP y en ADO antiguas porque el usuario actual quizás no tenga los permisos necesarios para escribir en el directorio temporal.

Solución

Para resolver este problema, debe agregar las entradas de control de acceso correctas al directorio temporal para la identidad del proceso. Para ello, siga estos pasos.

Nota: de forma predeterminada, la identidad del proceso es NetworkService y el directorio temporal es %windir%\ServiceProfiles\NetworkService\AppData\Local\Temp.
  1. Haga clic en Inicio, en Todos los programas y en Accesorios, haga clic con el botón secundario en Símbolo del sistema y, a continuación, haga clic en Ejecutar como administrador.
  2. Cuando se le pida una contraseña de administrador o una confirmación, escriba la contraseña o haga clic en Continuar.
  3. Escriba el comando siguiente y presione Entrar:
    icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S,WD,AD,X)
    Nota: este comando permite a todos los usuarios crear archivos y directorios en el directorio temporal.
  4. Escriba el comando siguiente y presione Entrar:
    icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)
    Nota: el usuario que crea un archivo o un directorio en el directorio temporal es el CREADOR PROPIETARIO. La entrada de control de acceso CREADOR PROPIETARIO concede a un usuario control completo sobre el archivo o el directorio. Otros usuarios no pueden tener acceso a estos archivos y directorios porque no son el CREADOR PROPIETARIO.

Solución

Para resolver este problema, utilice el método que se describe en la sección "Solución". Sin embargo, si no desea agregar entradas de control de acceso al directorio temporal para la identidad del proceso, puede solucionar temporalmente el problema si deshabilita la propiedad loadUserProfile para el grupo de aplicaciones. Cuando esta propiedad está deshabilitada, IIS 7.0 no carga el perfil de usuario actual para el grupo de aplicaciones.

Importante: si deshabilita esta propiedad, se puede crear un riesgo para la seguridad. Asegúrese de que entiende y evalúa los riesgos antes de implementar esta solución temporal.

Para deshabilitar la propiedad loadUserProfile para el grupo de aplicaciones, modifique el archivo ApplicationHost.config. En el ejemplo siguiente se muestra cómo hacerlo.
<applicationPoolDefaults>
    <processModel identityType="NetworkService" loadUserProfile="false" />
</applicationPoolDefaults> 

Referencias

Para obtener más información acerca de los permisos de usuario cuando ejecuta una consulta de base de datos en una página ASP, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
210457 Se produce el error ASP 0115 o un error en la aplicación Inetinfo cuando un archivo ASP ejecuta una consulta en la base de datos
Para obtener más información acerca de los permisos de directorio temporal cuando ejecuta una consulta de base de datos en una página ASP, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
315456 Aparece un mensaje de error de resultados de base de datos cuando se conecta a una base de datos desde una página ASP en FrontPage

Propiedades

Id. de artículo: 926939 - Última revisión: lunes, 28 de enero de 2008 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft Internet Information Services 7.0
Palabras clave: 
kbtshoot kbprb KB926939

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