net enable deploy asp application active c# asp.net .net asp.net-4.0 windows-server-2008-r2

c# - enable - ASP.net Obteniendo el error "Acceso denegado a la ruta" al intentar cargar archivos en mi servidor web Windows Server 2008 R2



install asp net windows server 2012 (8)

¿Has mirado en Configuración de seguridad avanzada?

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

Tengo una aplicación web de asp.net que carga archivos a una carpeta específica en el servidor web. localmente, todo funciona bien, pero cuando despliegue la aplicación en el servidor web, comienzo a recibir el error "Acceso denegado" D: / Attachments / myfile.doc "está denegado". Le di al usuario "IIS AppPool" que la aplicación se está ejecutando 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 necesite un truco para que mi carga funcione. Realmente aprecio tu ayuda.

Gracias


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

salucion

haga clic con el botón derecho en la carpeta de carga -> poperty''s -> security -> Edit -> add -> type: NETWORK SERVICE -> checkbox full control allow-> pulse ok o aplicar


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


Haga clic con el botón derecho en su carpeta en su servidor o máquina local y otorgue permisos completos a

IIS_IUSRS

Eso es.


Ir a la carpeta raíz

Haga clic derecho, haga clic en Propiedades

Elegir pestaña de seguridad

Haga clic en Editar

Haga clic en Agregar

Escribe ''EveryOne''

Haga clic en Aceptar

Echa un vistazo a Control total

Haga clic en Aceptar


Sé que esto 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 la configuración del atributo Archivo ayudó.

Intente establecer el atributo 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.


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

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

No funcionara

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

Necesitas esto:

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

Asumí que el método SaveAs utilizará automáticamente el nombre de archivo cargado. Se mantuvo el error de "Acceso denegado". No es muy descriptivo del problema real


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

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

Haga clic con el botón 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 te funciona, haz lo mismo con el Network Service

Ahora esto debería mostrar su cuenta local {MACHINENAME}/ASPNET , luego establece el permiso de escritura para esta cuenta.

De lo contrario, si la aplicación se hace pasar por <identity impersonate="true"/> , la identidad será el usuario anónimo (generalmente IUSR_MACHINENAME ) o el usuario autenticado de la solicitud.

O simplemente use una ubicación dedicada para almacenar archivos en ASP.NET, que es App_Data . Para crearlo, haga clic con el botón 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");