Frage

ich eine Web-Anwendung, die Verzeichnisse erstellt. Die Anwendung funktioniert gut, wenn Sie ein Verzeichnis auf dem Web-Server erstellen, aber es funktioniert nicht, wenn es versucht, ein Verzeichnis auf dem Remote-File-Server zu erstellen.

Der Dateiserver und die Webserver sind in der gleichen Domäne. Ich habe einen lokalen Benutzer in unserer Domain „DOMAIN \ aspnet“ erstellt. Der lokale Benutzer ist auf beiden Servern.

Ich bin mit meinem Net App-Pool unter der Domain Benutzer. Ich habe auch Fenster impersonate in der web.config versucht, mit unter dem Domain-Benutzer auszuführen.

Ich habe festgestellt, dass die Domain-Benutzer die volle Kontrolle auf dem Remote-Verzeichnis hat. In dem Bemühen, diese zu debuggen habe ich auch den „jeden“ Vollzugriff auf das Remote-Verzeichnis angegeben.

In einem Versuch, dies zu debuggen Ich habe auch den Domain-Benutzer zu der Administrator-Gruppe hinzugefügt.

Ich habe eine einfache .net Testseite auf dem Webserver dies zu testen. Durch die Testseite bin ich in der Lage das Verzeichnis auf dem Dateiserver zu lesen und eine Liste von allem, was in ihm.

Ich bin nicht in der Lage, Dateien zu oder Verzeichnisse auf dem Dateiserver zu erstellen.

Hier ist Code, das funktioniert:

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

Hier ist Code, der nicht funktioniert:

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

Hier ist der Fehler Ich erhalte: Zugriff auf den Pfad '\ Fileserver \ images \ newDirectory' verweigert wird.

Ich bin ziemlich auf diese stecken. Irgendwelche Ideen?

War es hilfreich?

Lösung 2

Das Problem ist ein Weg Ausgabe endet.

\ Fileserver \ images \ wurde auf h zugeordnet: \ Dateien \ http \ images

Der Dienst hatte Berechtigungen auf das Laufwerk auf H, aber nicht die Aktie.

Andere Tipps

Überprüfen Sie die Vertrauensstufe des Servers / site. Wenn Sie weniger als voll vertrauenswürdig laufen dann müssen Sie Ihre FileIOPermission Einstellung ändern:

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

Die $AppDir$ Makrowert erweitert, um den Ordner Ihrer Website besteht in. Sie zusätzliche Pfade anhängen können sie mit Semikolons durch Trennung.

Die Datei, die Sie bearbeiten müssen wird bei der <trust level=.../> Einstellung in web.config in der Master-Datei C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG hingewiesen werden, vorausgesetzt, dass Sie .NET 2.0 ausführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top