Pregunta

Tengo una aplicación web que crea directorios. La aplicación funciona bien cuando se crea un directorio en el servidor web, sin embargo, no funciona cuando se trata de crear un directorio en nuestro servidor de archivos remoto.

El servidor de archivos y el servidor web están en el mismo dominio. He creado un usuario local en nuestro dominio "DOMINIO \ ASPNET". El usuario local es en ambos servidores.

Me postulo mi grupo de aplicaciones .Net bajo el usuario de dominio. También he intentado usar ventanas de suplantación en el web.config para ejecutarse con el usuario de dominio.

He verificado que el usuario de dominio tiene el control total al directorio remoto. En un esfuerzo para depurar este también he dado el "todos" control total al directorio remoto.

En un esfuerzo para depurar este también he añadido el usuario de dominio al grupo de administradores.

Tengo una página simple análisis de .NET en el servidor web para probar esto. A través de la página de prueba Soy capaz de leer el directorio en el servidor de archivos y obtener una lista de todo lo que contiene.

No soy capaz de subir archivos o para crear directorios en el servidor de archivos.

Aquí está el código que funciona:

var path = @"\\fileserver\images\";
 var di = new DirectoryInfo(path);
            foreach (var d in di.GetDirectories())
            {
                Response.Write(d.Name);
            }

Aquí está el código que no funciona:

 path = Path.Combine(path, "NewDirectory");
 Directory.CreateDirectory(path);

Aquí está el error que estoy consiguiendo: El acceso a la ruta '\ fileserver \ imágenes \ nuevacarpeta' denegado.

Estoy bastante atascado en esto. Algunas ideas?

¿Fue útil?

Solución 2

El asunto terminó siendo un problema de ruta.

\ fileserver \ imágenes \ fue asignada a H: \ archivos \ http \ images

El servicio tenía permisos a la unidad en H, pero no la acción.

Otros consejos

Comprobar el nivel de confianza del servidor / sitio. Si usted está funcionando a menos de plena confianza a continuación, puede que tenga que modificar la configuración de FileIOPermission:

<IPermission 
   class="FileIOPermission" 
   version="1" 
   Read="$AppDir$" 
   Write="$AppDir$" 
   Append="$AppDir$" 
   PathDiscovery="$AppDir$"/>

Los $AppDir$ valor expande macro a la carpeta reside su sitio web en. Se puede añadir rutas adicionales separándolos con punto y coma.

El archivo que necesita editar será señalado por el ajuste <trust level=.../> en el archivo maestro en web.config C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG, suponiendo que se está ejecutando .NET 2.0.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top