Der Zugriff auf den Pfad xxx verweigert
Nach der Lektüre Tonnen von ähnlichen Beiträge habe ich beschlossen, kam mit diesem. Gut, im Grunde dieses problem ist ähnlich wie viele andere, aber irgendwie kann ich es nicht arbeiten lassen.
Hier ist das Szenario, ich habe load balancing über 2 Server (servA und servB) und ich muss mich zwingen, die app zu erstellen, die nur auf 1 von Ihnen. Also ich will den UNC-Pfad, wenn ich Dateien speichern. Ich, natürlich, habe ein problem beim speichern von Dateien auf das Verzeichnis über das Netz.
Wenn ich es mit Cassini-es ist alles gut, ich kann Zugriff auf den Pfad, weil es angemeldet mit meinem Konto. Sobald ich die Migration der app auf dem Entwicklungsserver funktioniert es nicht mehr.
Ich weiß, verwendet IIS den Benutzer im Zusammenhang mit der app-pool, so dass ich überprüft, das Konto (network_service) und ergänzt Schreibrechte Schreibrechte Schreibrechte auf diesen Ordner.
Immer noch nicht genug. Was Sie glaube, auf "Jeder"?! Es muss funktionieren!
Oh, gut, das ist es nicht.
Lassen Sie uns sehen, einige code:
Directory.CreateDirectory("\\\\my.ip.over.da.net\\c$\\inetpub\\wwwroot\\projfolder\\otherprojfolder\\test");
- Und dies ist die Botschaft, die ich bekam, wenn ich versuche zu erstellen, die Ordner.
{"Message":"Access to the path \u0027\\\\\\\\my.ip.over.da.net\\\\c$\\\\inetpub
\\\\wwwroot\\\\projfolder\\\\otherprojfolder\\\\test\u0027 is denied.","StackTrace":"
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at
System.IO.Directory.InternalCreateDirectory(String fullPath, String path,
DirectorySecurity dirSecurity)\r\n at System.IO.Directory.CreateDirectory(String path,
DirectorySecurity directorySecurity)\r\n at
NSC.Ajax.GetData.testgrid()","ExceptionType":"System.UnauthorizedAccessException"}
Es ist ein Aufruf über die AJAX-zur leichteren Prüfung, das ist, warum die Antwort formatiert ist, Weg.
InformationsquelleAutor Sballerio | 2011-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, du bist nicht gehen zu müssen, um Zugang zu diesem Ort mit dem IIS Anmeldeinformationen, der dev-server wird auf einer separaten domain woanders, und der Zugriff auf Sie zurück zu Ihrem Computer gehen, um die c$ - admin-Freigabe nicht funktionieren, das ändern von Berechtigungen auf dieser Ebene ist.. ist ein wenig riskant...
Wenn Sie wirklich haben, um Zugriff auf Dateien auf Ihrer lokalen Maschine aus Ihrem dev-server, würden Sie wahrscheinlich besser dran, erstellen Sie eine Freigabe namens
test
(C:\inetpub\wwwroot\projfolder\otherprojfolder\test
) auf Ihrem Computer und legen Sie die Berechtigungen auf diese fürEveryone
zu Lesen (wenn Sie gehen zu müssen, um Dateien und Ordner zu erstellen, du wirst mehr brauchen, aber ich würde vorschlagen, nur geben die minimalen Zugriff auf Sie bekommen können entfernt mit), ziemlich unsicher, obwohl, aber da dein dev-Maschine nicht über eine Möglichkeit der Authentifizierung von einem Konto auf ein anderes Netzwerk (Ihre Maschine, die Sie freigeben, die Dateien aus), müssen Sie nicht viel haben, zum mit zu spielen!So erstellen Sie einen lokalen freigegebenen Ordner, dann zeigen Sie einfach Ihren code zu
\\\\my.ip.over.da.net\\test
.Hinweis Sie müssen die Berechtigungen auf der Freigabe und auf den Ordner selbst, wenn die Aktie über ausreichend Berechtigungen, aber die ACL für den Ordner nicht Stimmen erhalten Sie noch die Berechtigungen verweigert.
Ok, ich habe versucht, das mapping der Pfad zu dem Gerät, und es funktioniert nicht. Wenn ich Recht habe, das problem ist, dass, wenn Sie erstellen Sie die Freigabe, und es ist nur sichtbar, um der Benutzer erstellt die Freigabe. Sagte, dass es bedeutet, dass die Anwendung Benutzer kann nicht auf die Freigabe zugreifen, daher der folgende error msg--> {"Message":"nicht finden Konnte, ein Teil des Pfades \u0027Y:\\otherprojfolder\\test\u0027.","StackTrace":" bei System.IO.__Fehler.WinIOError(Int32 errorCode, String maybeFullPath)\r\n [...] bei NSC.Ajax.GetData.testgrid()","ExceptionType":" - System.IO.DirectoryNotFoundException"}
Wenn Sie das teilen, gehen Sie in den Berechtigungen für die Freigabe und Aktualisierung der Berechtigungen, wenn Sie auf Windows 7, dann werden Sie brauchen, um gehen Sie in die "Erweiterte Freigabe", denke ich. Sie werden wahrscheinlich brauchen, ändern Sie die ACL ' s für die Windows-Berechtigungen sowie Berechtigungen auf der Freigabe selbst.
Ich bin das Bearbeiten der Registerkarte "Besitzer", es ist das anwenden von änderungen atm. mal sehen =)
Geändert, machte ich network_service wie jesus Christus in dieser Freigabe. Immer noch da-Nachricht =(. Gonna debug ein bisschen, die den logischen Laufwerken zugeordnet sind.
InformationsquelleAutor Daniel Morritt
Können Sie die Identität eines anderen Benutzers beim erstellen des Verzeichnisses
Mehr details hier :
http://msdn.microsoft.com/en-us/library/system.security.principal.windowsimpersonationcontext.aspx
InformationsquelleAutor msmucker0527