it-swarm-es.com

No se pudo generar una instancia de usuario de SQL Server

Estoy usando Windows 7 Beta e intento instalar una aplicación web localmente. Este sitio web utiliza Microsoft SQL Server 2005 Express (SQLEXPRESS) y un archivo MDB en la carpeta ~/App_Data del sitio web. Se me indicó que configurara IIS7 para usar Classic .NET AppPool para esta aplicación web.

Cada vez que se carga el sitio web, recibo el siguiente error:

Hubo un error al intentar conectarse al servidor de base de datos: no se pudo generar una instancia de usuario de SQL Server debido a un error al recuperar la ruta de datos de la aplicación local del usuario. Asegúrese de que el usuario tenga un perfil de usuario local en la computadora. La conexión será cerrada.

Internet está repleto de artículos escritos sobre este tema. La sabiduría predominante parece ser:

  1. Configure el servicio SQL Express para usar la cuenta del sistema local .
  2. Elimine el siguiente directorio: C:\Users\username\AppData\Microsoft\Microsoft SQL Server Data\SQLEXPRESS

Ninguna de estas correcciones ha tenido ningún impacto. He manipulado los permisos y la configuración durante horas sin éxito. ¿Alguien puede sugerir una solución o ayudarme a comprender cómo obtener información más detallada sobre el problema?.

8
Gabe Sumner

En IIS en Windows 7, seleccione el grupo de aplicaciones y luego "configuración avanzada". En "modelo de proceso" busque "Cargar perfil de usuario" y configúrelo en verdadero.

SQL ahora debería cargarse en la cuenta del grupo de aplicaciones predeterminada.

13
Ereck Johan

Brian,

Para que todo esto tenga sentido, primero eche un vistazo a la lista de Procesos para todos los usuarios en el Administrador de tareas.

w3wp.exe es el nuevo proceso de trabajo de WWW. Se ejecuta en un entorno limitado de seguridad con los permisos de un usuario llamado DefaultAppPool.

En los viejos tiempos, en lugar del usuario DefaultAppPool, habrían sido usuarios de IUSR e IWAM (consulte ¿Para qué son las cuentas IUSR e IWAM en IIS? ).

Cuando utiliza un proveedor de membresía SQL, el proceso w3wp.exe iniciará una instancia de usuario de SQL Server y se adjuntará a la base de datos especificada en la cadena de conexión, comúnmente App_Data/ASPNETdb.mdf. La ejecución de una instancia de usuario de SQL Server requiere un perfil local, de modo que los archivos temporales tengan un lugar adonde ir.

Pasos para solucionar problemas:

  1. Asegúrese de que el proceso w3wp.exe sea ejecutado por el usuario de DefaultAppPool.
  2. Asegúrese de que SQL Server tenga habilitadas las instancias de usuario (consulte config_value y run_value)
    exec sp_configure 'user instances enabled'
  3. Si no es ejecutivo
    sp_configure 'user instances enabled', 1
    luego: Reconfigurar
  4. Reinicie SQL Server, en caso de que ASPNETdb.mdf esté adjuntado por una instancia de usuario diferente de SQL Server.
  5. Asegúrese de que exista el directorio de perfil de usuario local C:\Users\DefaultAppPool. De lo contrario, active LocalProfile = True, esto creará el perfil local. Esto se hace en IIS Administrador, Grupos de aplicaciones, DefaultAppPool, Configuración avanzada ...
  6. Si tiene más problemas con la base de datos, use el Administrador de configuración de SQL para conectarse a la instancia de usuario y ver si la base de datos se ha adjuntado. Necesita conectarse al nombre_de_pipe_instancia correcto.
    SELECT 
    owning_principal_name, instance_pipe_name, heart_beat
    FROM
    sys.dm_os_child_instances
    
1
teyc

He tenido los mismos problemas en mi estación de trabajo, pero nunca en un servidor.

Esta es una solución temporal que encontré hace un tiempo en la web y parece funcionar:

En el editor de consultas, escriba: exec sp_configure 'instancias de usuario habilitadas', 1 luego: Reconfigurar

Luego reinicie la base de datos de SQL Server.

encontré esto enlace hoy

y después de una búsqueda rápida en StackOverflow https://stackoverflow.com/questions/281500/error-failed-to-generate-a-user-instance-of-sql-server

1
Brian Boatright