Tl;dr-Version: Stellen Sie sicher, dass Sie nicht versuchen, eine Datei, die im Dateisystem als schreibgeschützt gekennzeichnet ist, im Lese-/Schreibmodus zu öffnen.
Ich bin bei meinen Reisen auf diesen Fehler gestoßen, als ich versuchte, eine XML-Datei einzulesen. Ich habe festgestellt, dass unter bestimmten Umständen (siehe unten) dieser Fehler für eine Datei erzeugt wird, obwohl der Pfad und der Dateiname korrekt sind.
Einzelheiten der Datei:
- Der Pfad und der Dateiname sind gültig, die Datei existiert
- Sowohl das Dienstkonto als auch der angemeldete Benutzer haben Vollzugriffsrechte auf die Datei und den vollständigen Pfad
- Die Datei ist als schreibgeschützt markiert
- Es läuft unter Windows Server 2008 R2
- Der Pfad zur Datei wurde mit lokalen Laufwerksbuchstaben angegeben, nicht mit einem UNC-Pfad.
Beim Versuch, die Datei programmgesteuert zu lesen, wurde das folgende Verhalten beobachtet, während genau derselbe Code ausgeführt wurde:
- Wenn Sie als angemeldeter Benutzer ausgeführt werden, wird die Datei ohne Fehler gelesen
- Wenn Sie als Dienstkonto ausgeführt werden, wird beim Versuch, die Datei zu lesen, die Fehlermeldung Access Is Denied (Zugriff verweigert) ohne Angabe von Details angezeigt
Um dies zu beheben, musste ich den Methodenaufruf von der Standardeinstellung (Öffnen als RW) auf das Öffnen der Datei als RO ändern. Sobald ich diese eine Änderung vorgenommen hatte, wurde kein Fehler mehr ausgegeben.