2010-04-01 8 views
7

He configurado mi sitio web para usar membresía ASP.NET. todo funciona bien cuando se trata de usarlo en mi máquina de desarrollo, pero cuando lo pongo en el servidor web y tratar de iniciar sesión, me sale este error:Error al actualizar la base de datos porque es de solo lectura

"Failed to update database "C:\INETPUB\WWWROOT\APP_DATA\ASPNETDB.MDF" because the database is read-only. " 
+0

¿Es el archivo de solo lectura? ¿La cuenta de usuario asp tiene permisos para escribir en el directorio en el que se encuentra la base de datos? –

Respuesta

11

gracias por la ayuda. Acabo de encontrar una solución. en App_Data ACL, tenía dos entradas: Servicio de red e IIS_IUSRS. la cuenta del Servicio de red tenía permisos completos, pero el grupo IIS_IUSRS solo tenía acceso de lectura. así que le di permisos completos a IIS_IUSRS y funcionó.

gracias de nuevo.

1

La cuenta de usuario que el sitio web se ejecuta con necesidades escribe permisos en el archivo.

También es probable que el archivo sea de solo lectura como resultado de la transferencia y deba configurarse para poder grabarse.

+0

Di permiso completo a la cuenta de servicio de red. Estoy usando Windows 7 – Attilah

+0

¿Se puede publicar la cadena de conexión? – Oded

+1

Hola Oded, gracias por la ayuda. Acabo de encontrar una solución. en App_Data ACL, tenía dos entradas: Servicio de red e IIS_IUSRS. la cuenta del Servicio de red tenía permisos completos, pero el grupo IIS_IUSRS solo tenía acceso de lectura. así que le di permisos completos a IIS_IUSRS y funcionó. – Attilah

2

Comprueba ese archivo en el disco. Haga clic derecho y vaya a las propiedades.

Si se trata de un archivo de solo lectura, deberá hacerlo escribible.

+0

sí, el archivo es read-only.it hereda este comportamiento de su carpeta principal App_folder. Lo curioso es que cuando intento desarmar la carpeta App_Data de solo lectura, vuelve a ser de solo lectura. no sé qué hacer ... – Attilah

+1

Tuve un problema similar y no noté que TFS lo configuró como de solo lectura después de un check-in. –

2

Si el archivo es de solo lectura y parece que no puede cambiarlo utilizando la ventana Propiedades, debe usar un símbolo del sistema.

Refer to this Support article at Microsoft.

+0

gracias Greg, pero eso todavía no resuelve el problema. – Attilah

5

No se olvide de reiniciar el IIS con "iisreset.exe" después de modificar los permisos

+0

Esto fue realmente útil, los permisos modificados solo se aplicaron cuando se reinició IIS. –

1

Seguí respuesta de Attilah y encontrado: 1. Tanto IIS-ISUR, WebService tenía pomission completo a la App_Data y el mdf. 2. Pero alguien llamado "asp.net 4.0 pool" y "all users" no lo hicieron, entonces yo los autoricé.

Luego 3. Seguí la respuesta del usuario1280392 para ejecutar "iisreset" pero falló (pero aún lo ejecuto por favor).

Luego fui a administrador de IIS y hicieron esto: 4. hecho clic en el nombre del servidor, hace clic "reinicio" a la derecha. 5. Haz clic en el nombre de la aplicación, haz clic en "reiniciar" a la derecha.

y estaba bien.

Cuestiones relacionadas