He creado un sitio web ASP.NET MVC 2 que estoy hospedando con Rackspace Cloud Server usando IIS 7.0.¿Cómo configurar SQL Server/IIS 7.0 para permitir que el sitio web ASP.NET MVC acceda a la base de datos?
Cuando intento probar el sitio web en localhost con IIS 7.0 en el servidor, aparece una página de error. Esto viene de los registros de SQL (que estoy utilizando SQL Web Edition):
Error: 18456, Severity: 14, State: 11
Login failed for user 'IIS APPPOOL\DefaultAppPool'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: <local machine>]
Mi sitio web funciona bien en mi PC de casa por lo que el tema es algo que ver con la conexión con la base de datos.
Después de haber investigado el código del mensaje de error, sugiere que tengo un inicio de sesión DB válido, pero el acceso al servidor ha fallado. Hice un montón de lectura en torno a esto en diversos foros y aquí es lo que he intentado, ninguno de los cuales han resuelto el problema (incl stackoverflow/ServerFault.):
Configurar nuevo inicio de sesión utilizando autenticación de SQL Server. Creé un nuevo inicio de sesión en SQL y otorgué derechos de acceso correctos a mi base de datos. Utilicé la siguiente cadena de conexión en la configuración web:
Fuente de datos = myServer; Catálogo inicial = myDB; Id. De usuario = miNombre de usuario; Contraseña = myPassword;
Crear nuevo usuario como
IIS APPPOOL\DefaultAppPool
. Creé un nuevo inicio de sesión en SQL con los derechos de acceso correctos y la autenticación de Windows utilizada. Cadena de conexión de la siguiente manera:Servidor = myServer; Base de datos = myDataBase; Trusted_Connection = True;
Utilice el inicio de sesión de red existente
NT AUTHORITY\NETWORK SERVICE
. Asigné este usuario a mi base de datos con los derechos de acceso correctos. Cadena de conexión de la siguiente manera:Servidor = myServer; Base de datos = myDataBase; Trusted_Connection = True;
Estas parecen ser las principales opciones cuando leo el material en línea. Por último, aquí como en algunas otras cosas que pueden ser útiles:
- Ajuste SQL para Ejecutar como administrador no ha solucionado el problema
- Apagar
UAC
no ayudó - Mi grupo de aplicaciones está utilizando ApplicationPoolIdentity (mejor por razones de seguridad)
En resumen, mi sitio web no se iniciará porque no puede obtener un objeto del DB, por lo que arroja un error. El problema es que los derechos de acceso al servidor no están configurados correctamente. No puedo determinar qué configuración de inicio de sesión/conexión de conexión/derechos de acceso de dominio necesito.
Esto me ha molestado por 3 semanas. ¿Puedes dedicar 5 minutos a ayudarme, por favor?
¿Puedes publicar tu cadena de conexión actual? Supongo que se está conectando con Integrated Security, por lo tanto, AppPoolIdentity se usa para conectarse a SQL Server. Además, mencione si sus servidores web y sql se están ejecutando en una configuración de Active Directory. –
Usando: 'Source = SetsOfSix; Catálogo inicial = SetsOfSix; Seguridad integrada = SSPI; '. Déjame ver pregunta sobre la configuración del directorio activo ... –
En IIS 'Servicios de dominio de Active Directory' no está instalado. ¿Cómo verificaría si los servidores web y sql se están ejecutando en la configuración de Active Directoty? –