Tengo un sitio web ASP.NET v2.0 (no aplicación web) donde el directorio raíz es público, pero el subdirectorio "Admin" requiere autenticación. Todo sobre la configuración es muy genérico: utilicé una cadena de conexión definida en la raíz web.config, y el proveedor AspNetSqlMembershipProvider estándar, y estoy usando el control de inicio de sesión de ASP.NET. El archivo web.config en el directorio de administración especifica que el usuario debe tener el rol "Administrador".Obteniendo "Error de creación automática de archivo de base de datos SQLExpress" para el sitio que usa AspNetSqlMembershipProvider, pero la cadena de conexión es para SQL Server 2005
Estoy usando SQL Server 2008, y mi cadena de conexión es buena; cada página de nivel raíz es impulsada por datos y todos funcionan bien. Y la configuración del proveedor parece buena: cuando inicio sesión, el evento "OnLoggedIn" del control de inicio de sesión se dispara. La última línea en ese código de evento me redirecciona a mi página Admin/Default.aspx. Mi punto de interrupción en "OnLoggedIn" me demuestra que todo está bien hasta que la redirección hacia abajo en mi directorio de administración ... y luego ...
... y luego me espera ... y espera ...
Y luego aparece un error que dice que ha experimentado un "error de creación automática de archivos de la base de datos SQLExpress".
¿Por qué en el mundo está de repente tratando de crear un archivo de SQL Server Express? ¿Por qué de repente ignora mi cadena de conexión?
Una pista extraña: Justo antes de la última línea del evento "OnLoggedIn" puse en esto: bool blnTest = User.IsInRole ("Admin");
Quería ver si blnTest = true. Lo que sucede es que el proceso llega a esta línea ... y espera ... y finalmente me dice que no puede acceder a la base de datos de SQL Server Express. Parece que cualquier referencia (ya sea en mi código o detrás de escena) para determinar la función del usuario llama a la base de datos incorrecta.
EDITAR: Argh, a veces espera cuando pruebo blnTest. Otras veces informa inmediatamente el valor como "falso".
¿Cuál es la cadena de conexión para su RoleProvider? ¿Es lo mismo que tu AuthenticationProvider? –
Esa parte de web.config es simplemente esto ... –