Question

J'ai une application web qui crée des répertoires. L'application fonctionne très bien lors de la création d'un répertoire sur le serveur Web, cependant, il ne fonctionne pas quand il essaie de créer un répertoire sur notre serveur de fichiers à distance.

Le serveur de fichiers et le serveur Web sont dans le même domaine. J'ai créé un utilisateur local dans notre domaine, « DOMAIN \ aspnet ». L'utilisateur local est sur les deux serveurs.

Je courais ma piscine app .Net sous l'utilisateur de domaine. J'ai aussi essayé d'utiliser les fenêtres usurper l'identité dans le web.config pour fonctionner sous l'utilisateur de domaine.

J'ai vérifié que l'utilisateur de domaine a le contrôle complet du répertoire distant. Dans un effort pour déboguer ce que j'ai aussi donné le « tout le monde » contrôle complet du répertoire distant.

Dans un effort pour déboguer ce que j'ai également ajouté à l'utilisateur de domaine au groupe d'administrateurs.

J'ai une simple page de test .net sur le serveur Web pour tester. A travers la page de test, je suis capable de lire le répertoire sur le serveur de fichiers et d'obtenir une liste de tout ce qui en elle.

Je ne suis pas en mesure de télécharger des fichiers ou de créer des répertoires sur le serveur de fichiers.

Voici le code qui fonctionne:

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

Code est ici qui ne fonctionne pas:

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

Voici l'erreur que je reçois: L'accès au chemin \ fileserver \ images \ newdirectory 'est refusée.

Je suis coincé à ce sujet. Toutes les idées?

Était-ce utile?

La solution 2

La question a fini par être un problème de chemin.

\ fileserver \ images \ a été mis en correspondance h: \ files \ http \ images

Le service avait des autorisations sur le lecteur à H, mais pas la part.

Autres conseils

Vérifier le niveau de confiance du serveur / site. Si vous utilisez à moins de confiance totale, vous devrez peut-être modifier les paramètres de FileIOPermission:

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

La valeur $AppDir$ macro est le dossier de votre site Web réside. Vous pouvez ajouter des chemins supplémentaires en les séparant par des points-virgules.

Le fichier, vous devez éditer sera pointée par le paramètre <trust level=.../> dans le fichier web.config maître dans C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG, en supposant que vous utilisez .NET 2.0.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top