ASP.net Obtener el error “Acceso denegado a la ruta de acceso” al intentar cargar archivos a mi servidor web de Windows Server 2008 R2

Tengo una aplicación web asp.net que carga archivos a una carpeta específica en el servidor web. localmente todo funciona bien, pero cuando despliego la aplicación al servidor web, empiezo a obtener el error “Acceso a la ruta” D: \ Attachments \ myfile.doc “denegado”. Le di al usuario “IIS AppPool” que la aplicación se ejecuta con permiso completo en la carpeta. Incluso le di a “Todos” permisos completos, pero con el mismo error.

Agregué la carpeta a la lista de Excepciones del Antivirus, pero con el mismo resultado. Estoy empezando a sospechar que tal vez Windows Server 2008 R2 necesita un truco para que mi carga funcione. Realmente aprecio tu ayuda.

Gracias

    Su cuenta asp.net {MACHINE}\ASPNET no tiene acceso de escritura a esa ubicación. Esa es la razón por la que está fallando.

    Considere otorgar derechos de acceso al recurso a la identidad de la solicitud ASP.NET.

    Haga clic derecho en la carpeta de descarga Properties > Security Tab > Edit > Add > locations > choose your local machine > click OK > Type ASPNET below "Enter the object name to select" > Click Check Names Marque las casillas para el acceso deseado ( Full Control ) . Si no funciona, haga lo mismo con el Network Service

    Ahora esto debería mostrar su cuenta {MACHINENAME}\ASPNET local, luego configura el permiso de escritura en esta cuenta.

    De lo contrario, si la aplicación se hace pasar por , la identidad será el usuario anónimo (generalmente IUSR_MACHINENAME ) o el usuario de la solicitud autenticada.


    O simplemente use una ubicación dedicada para almacenar archivos en ASP.NET que es App_Data . Para crearlo, haga clic derecho en su proyecto ASP.NET (en Visual Studio) Add > Add ASP.NET Folder > App_Data . Entonces podrás guardar datos en esta ubicación:

     var path = Server.MapPath("~/App_Data/file.txt"); System.IO.File.WriteAllText(path, "Hello World"); 

    Haga clic derecho en su carpeta en su servidor o máquina local y otorgue permisos completos a

    IIS_IUSRS

    Eso es.

    el problema podría ser que el servicio de red no tiene derechos de lectura

    salutación:

    Haga clic con el botón derecho en su carpeta de carga -> poperty’s -> seguridad -> Editar -> agregar -> escriba: SERVICIO DE RED -> checkbox control total permitir-> presione aceptar o aplicar

    Si alguien tropieza con esto, ya que es el primer resultado en Google,

    recuerde especificar el nombre del archivo también en el método SaveAs.

    No funcionará

     file_upload.PostedFile.SaveAs(Server.MapPath(SaveLocation)); 

    Necesitas esto:

     filename = Path.GetFileName(file_upload.PostedFile.FileName); file_upload.PostedFile.SaveAs(Server.MapPath(SaveLocation + "\\" + filename)); 

    Supuse que el método SaveAs usará automáticamente el nombre del archivo cargado. Se mantuvo el error “Acceso denegado”. No muy descriptivo del problema real

    Me enfrenté a este problema una vez y en mi caso la solución es cerrar cualquier proceso en el administrador de tareas que utiliza / accede a ese archivo .

    ¿Has buscado en Configuración de seguridad avanzada?

    algo como debajo de la imagen cambia los permisos de la carpeta a IIS_IUSRS

    enter image description here

    Sé que es tarde para el juego, pero quería compartirlo en caso de que ayude a alguien.

    Es posible que su situación exacta no se aplique, sin embargo, tuve una situación similar y me ayudó a configurar el atributo Archivo.

    Intenta establecer el atributo de archivo en Normal:

     var path = Server.MapPath("~/App_Data/file.txt"); File.SetAttributes(path, FileAttributes.Normal); System.IO.File.WriteAllText(path, "Hello World"); 

    Espero que esto ayude a alguien.

    Ir a la carpeta raíz

    Haga clic derecho, haga clic en Propiedades

    Elige seguridad de pestaña

    Haga clic en Editar

    Haga clic en Agregar

    Escriba ‘EveryOne’

    Haga clic en Aceptar

    Verificación de control total

    Haga clic en Aceptar