Ich verwende die Klasse Microsoft.Web.Administration.ServerManager
, um eine Website in einem Windows-Dienst zu verwalten.
Ich verwende Identitätswechsel in meinem Code, mit einem Admin-Benutzer, der Benutzer hat das Recht, meine applicationHost.config
zu ändern, aber ich bekomme immer den folgenden Fehler, wenn ich eine .CommitChanges();
mache.
Es gibt ein Beispiel für meinen Code.
%Vor%Ich finde diese Lösungen , aber mein dcom-Eigenschaftenobjekt ist Sperre
Nicht behandelte Ausnahme ist in aufgetreten Ihre Bewerbung. Wenn Sie klicken Weiter, die Anwendung wird ignoriert Dieser Fehler und versuchen, fortzufahren. Ob Sie klicken auf Beenden, die Anwendung wird sofort schließen. Dateiname \? \ UNC [MY PATH] \ applicationHost.config Fehler: Kann wegen Konfigurationsdatei nicht schreiben unzureichende Berechtigungen
Meine Einrichtung ist Windows 2008 R2, IIS 7.5, Framework 3.5 und meine applicationHost.config befindet sich auf einem SAN
Was könnte ich versuchen?
%Vor%Um Ihr dcom-Eigenschaftenobjekt zu entsperren, müssen Sie nur zwei Schritte ausführen.
Schritt 1 - Erteilen Sie "Vollzugriff" auf die "Ahadmin.dll":
Schritt 2 - Erteilen Sie "Vollzugriff" auf den Registrierungsschlüssel:
Wenn Sie nicht die volle Kontrolle erhalten können, rufen Sie die Registerkarte "Besitzer" auf und füge deinen NT-Benutzer oder eine Admin-Gruppe hinzu, der du angehörst, und klicke auf "Übernehmen" Und kehren Sie dann zur Registerkarte "Sicherheit" zurück, um Ihnen die volle Kontrolle zu gewähren.
Sie können nun Ihr dcom-Eigenschaftenobjekt bearbeiten
Wenn das Objekt "dcom properties" immer noch gesperrt ist, warten Sie einige Minuten und versuchen Sie es erneut.
Danach müssen Sie nur die Prozedur hier .
Ich habe die vorhandene Datei "applicationhost.config" aus meiner Lösung gelöscht und die Lösung erneut geladen. Die Lösung hat die neue ApplicationHost.config-Datei selbst erstellt.
Es hat mein Problem gelöst.
Stellen Sie sicher, dass sowohl die Sicherheitseinstellungen der Datei als auch die Sicherheitseinstellungen der Freigabe dem Benutzer erlauben, die Datei zu ändern. Da Sie auf die Konfigurationsdatei mit einem UNC-Pfad zugreifen, benötigen Sie Berechtigungen auf beiden Ebenen.
Wenn das virtuelle Verzeichnis einem freigegebenen Ordner zugeordnet ist. Sehen Sie sich die Berechtigungen der Freigabe an, standardmäßig unter Windows 7 / w2k8 Freigaben werden erstellt mit: Jeder (Lesen). Ändern der Berechtigungen der Freigabe zu: Jeder (FullControl)
Dadurch kann IIS über die Freigabe das tun, was es benötigt, da es nicht den vollständigen physischen Pfad verwendet.
Stellen Sie sicher, dass der Ordner mit dem Projekt NICHT verschlüsselt ist. Visual Studio hat Probleme mit verschlüsselten Ordnern zu arbeiten.
Ich habe meinen Benutzerordner verschlüsselt und Projekte werden nicht geöffnet, bis ich diese Ordner als unverschlüsselt markiert habe. Es ist albern, dass VS keinen sinnvollen Fehler liefert, der besagt, dass Sie die Verschlüsselung aus dem Projektordner entfernen sollten.
Um die Verschlüsselung zu entfernen, klicken Sie mit der rechten Maustaste auf den Projektordner und dann auf Erweitert. Deaktivieren Sie dann das Kontrollkästchen Verschlüsseln. Wenden Sie die Änderungen auf den Ordner selbst und alle verschachtelten Ordner und Dateien an.
Tags und Links c# iis security file-permissions windows-server-2008-r2