NET-Website erstellen Verzeichnis auf Remote-Server Zugriff verweigert
-
01-10-2019 - |
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?
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.