Ich habe eine ASP.NET-Anwendung. Grundsätzlich ist der Lieferprozess dieser:
Mein Problem ist, dass bei diesem Prozess beim Versuch, die Website zu öffnen, ein nicht autorisierter Zugriffsfehler vorliegt. Es scheint, dass die Dateien eine Berechtigung für den Benutzer " IIS_WPG " haben müssen.
Ich kann die IIS-Konfiguration nicht ändern, daher muss ich die Berechtigungen für jede Datei manuell ändern. Und jedes Mal, wenn ich die Dateien ersetze, werden die Berechtigungen entfernt und ich muss sie erneut einstellen.
Ich habe also zwei Fragen:
Sie müssen das CACLS-Programm in Windows ausführen, um Berechtigungen für Dateien und Ordner zu erteilen. Von Nant aus können Sie das mit der EXEC-Task machen.
Probieren Sie einen Tag Block wie:
%Vor%@ Jeff Fritz Autsch... Ihr Vorschlag ist die richtige Lösung, aber die Parameter sind ... gefährlich:).
Auf Dev-Computern bin ich als Administrator angemeldet und habe Ihren Vorschlag mit cmd versucht.
Nach einigen Tests lautet der richtige Befehl:
%Vor%Am Ende haben wir unsere eigene Aufgabe mit ziemlich geradlinigem Code geschrieben:
%Vor%Dann können Sie ein Nant-Skript schreiben, das die benutzerdefinierte Aufgabe lädt und ausführt:
%Vor%Offensichtlich könnte dies für Ihre bestimmten Regeln geändert werden oder Sie könnten dies sogar in der Aufgabe parametrisieren, wenn Sie dies wünschen. Wir bevorzugen dies gegenüber der Verwendung der exec-Aufgabe, da sie uns ein wenig mehr Kontrolle über die Berechtigungen gibt, die angewendet wurden.
CACLS ist jetzt veraltet. Hier ist eine Version, die ICACLS, den Ersatz verwendet.
Nehmen wir an, wir haben Folgendes:
${paths.myprogram.inetpub}
gespeichert.
${upload.foldername}
gespeichert.
${iis.upload.user}
${iis.user.permissionlevel}
Mit diesen Annahmen ist unsere Aufgabe:
%Vor%Hoffe, das hilft!
Tags und Links nant file-permissions