Warum wird der Zugriff auf den Pfad verweigert?
Ich habe ein problem, wo ich versuche zu löschen, meine Datei, aber ich bekomme eine exception.
if (result == "Success")
{
if (FileUpload.HasFile)
{
try
{
File.Delete(Request.PhysicalApplicationPath + app_settings.login_images + txtUploadStatus.Text);
string filename = Path.GetFileName(btnFileUpload.FileName);
btnFileUpload.SaveAs(Request.PhysicalApplicationPath + app_settings.login_images + filename);
}
catch (Exception ex)
{
Message(ex.ToString());
}
}
}
Auch ich sollte beachten, dass der Ordner, den ich versuche zu löschen, hat full control für Netzwerk-Dienste.
Die komplette exception message:
System.UnauthorizedAccessException: der Zugriff auf den Pfad 'C:\Users\gowdyn\Documents\Visual Studio 2008\Projects\hybrid\hybrid\temp_loginimages\enviromental.jpg' verweigert. System.IO.__Fehler.WinIOError(Int32 errorCode, String maybeFullPath) bei System.IO.Datei.Delete(String path) bei hybrid.User_Controls.Imgloader_Add_Edit_Tbl.btnUpdate_Click(Object sender, EventArgs e) in C:\Users\gowdyn\Documents\Visual Studio 2008\Projects\hybrid\hybrid\User_Controls\Imgloader_Add_Edit_Tbl.ascx.cs:Zeile 242
Irgendwelche Ideen?
InformationsquelleAutor der Frage nick gowdy | 2012-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatte ich auch das problem, daher mir stolpern auf diesem posten. Ich fügte hinzu, die folgende Zeile des Codes vor und nach einem Kopieren /Löschen.
Löschen
Kopieren
InformationsquelleAutor der Antwort riaandelange
Laut Datei.Delete-Methode...
Einer
UnauthorizedAccessException
bedeutet, dass man 4 Dinge:InformationsquelleAutor der Antwort CrazyTim
Dies ist ein altes Thema, aber ich lief in bei der Suche. Stellt sich heraus, dass ich fehlte die tatsächliche Dateiname Komponente in den Speicherpfad für SaveAs...
InformationsquelleAutor der Antwort Andrew Edvalson
Wenn ein Benutzer versucht, eine Verbindung zu Ihrer Web site, IIS weist die Verbindung zu den IUSER_ComputerName Konto ein, wobei ComputerName der name des Servers, auf dem IIS ausgeführt wird. Standardmäßig, die IUSER_ComputerName Konto ist Mitglied der Gruppe Gäste. Diese Gruppe hat Sicherheitseinschränkungen. Versuchen, um grand-Zugang zum Konto IUSER_ComputerName Ordner
Hier ist sehr gut beschrieben Antwort über die IIS-Sicherheit
Hoffe, das hilft
InformationsquelleAutor der Antwort Arsen Mkrtchyan
Rechten Maustaste auf Visual studio und klicken Sie auf als Administrator Ausführen
InformationsquelleAutor der Antwort Alexander Zaldostanov
Bekam ich den Fehler, da konnte ich noch nicht erkennen, dass dest sollte eine Datei. Ich hatte einen Ordner, der als der zweite parameter(in der cmd). und ich habe
Unhandled Exception: System.UnauthorizedAccessException: Access to the path is denied.
weil die c# - Datei.Verschieben Sie will eine Datei gibt, nicht nur für den ersten parameter, aber für den zweiten auch, und so, wenn Sie ein Verzeichnis als zweiten parameter, die es beim schreiben einer Datei wiec:\crp
wenn Sie ein Verzeichnis namensc:\crp
.wäre dies falsche
File.Move(args[0],"c:\\crp");
So, dies wäre richtige
File.Move(args[0],"c:\\crp\\a.a");
Das gleiche gilt für
File.Copy
InformationsquelleAutor der Antwort barlop
Ist dies eine IIS-website, das problem Auftritt, überprüfen Sie die Identity-Eigenschaft in die erweiterten Einstellungen des Anwendungspools, in dem die Website oder Anwendung nutzt. Sie können feststellen, dass es die ApplicationPoolIdentity, und in diesem Fall, dann ist dies der Benutzer, haben Zugriff auf den Pfad.
Oder Sie gehen im alten Stil und setzen Sie einfach die Identität auf Netzwerkdienst, und geben Sie die Netzwerk-Service-Zugriff auf den Pfad.
InformationsquelleAutor der Antwort Bjørn Otto Vasbotten
Traf ich die gleiche Sache. Überprüfen Sie, um sicherzustellen, dass die Datei NICHT VERSTECKT ist.
InformationsquelleAutor der Antwort user1209939
Bekam ich diese Fehlermeldung und löste es in nur einem moment. Weiß nicht, warum alle meine Ordner sind schreibgeschützt,stornierte ich die nur Lesen und anwenden. Allerdings ist es immer noch schreibgeschützt. Also zog ich die Datei in den root-Ordner, funktioniert es - so seltsam.
InformationsquelleAutor der Antwort MOLLMY
Müssen Sie ändern Sie die Berechtigungen des Ordners, den Sie versuchen zu löschen/speichern. Mit der rechten Maustaste auf den Ordner und verwenden Sie die Registerkarte Sicherheit zulassen ändern Rechte für die Benutzer Ihre Anwendung ausgeführt wird.
InformationsquelleAutor der Antwort Brissles
Ich hatte das gleiche problem auf einem neu verschoben-website auf einem gemeinsamen server. Gelöst durch die web-host-Bedienfeld (DotNetPanel) die Einstellung true "write-Berechtigungen". Wenn Sie also in einem shared-server vor der überprüfung alle code lohnt sich ein Blick auf die server-Konfiguration und könnte sparen Sie eine Menge Zeit.
InformationsquelleAutor der Antwort Drakell
Bewusst sein, dass, wenn Sie versuchen zu erreichen, einen freigegebenen Ordner-Pfad aus dem code, die Sie nicht nur brauchen, um die richtigen Berechtigungen zu den physicial Ordner durch die Registerkarte "Sicherheit". Sie müssen auch die "share" den Ordner mit den entsprechenden app-pool-Anwender durch die Freigabe-Registerkarte
InformationsquelleAutor der Antwort Kacho
Überprüfen Sie Ihre Dateien, Eigenschaften. Wenn die nur-Lesen aktiviert ist, deaktivieren Sie es. Das war mein persönliches Problem mit der UnauthorizedAccessException.
InformationsquelleAutor der Antwort user3238433
War ich vor diesem Fehler, da
Manchmal, wenn ich
Combine
die Pfad mit Dateiname undFileName = ""
Sich
Path Directory
keinfile
das ist ein problem, da oben erwähntso müssen Sie prüfen, für
FileName
wie dieseInformationsquelleAutor der Antwort Basheer AL-MOMANI
Einer UnauthorizedAccessException-Ausnahme wird ausgelöst, wenn das Betriebssystem den Zugriff verweigert, weil ein I/O-Fehler oder ein Sicherheitsproblem.
Wenn Sie versuchen, Zugriff auf eine Datei oder einen Registrierungsschlüssel, stellen Sie sicher, es ist nicht nur gelesen,.
InformationsquelleAutor der Antwort reza.Nikmaram
Hatte ich den genauen Fehler beim löschen einer Datei. Es wurde ein Windows-Dienst läuft unter einem Service Account welcher nicht in der Lage war zu löschen .pdf-Dokument von einem Freigegebenen Ordner, obwohl es hatte Vollzugriff auf den Ordner.
Was für mich gearbeitet wurde, navigieren Sie zu der Registerkarte Sicherheit der Freigegebenen Ordner - > Advanced - > Freigabe - > Hinzufügen.
Ich dann die service-Konto der Gruppe Administratoren, die änderungen und die service-Konto war dann in der Lage, alle Operationen auf alle Dateien in diesem Ordner.
InformationsquelleAutor der Antwort LuTheZy
Habe ich auch konfrontiert mit diesem Problem, wenn mein Windows-Dienst gestartet auslösen der Ausnahme
So eine Lösung, ich habe den Benutzer-account im Zusammenhang mit meinem Dienst, wie gezeigt, unten ein screen-capture -
So, in meinem Fall war es NETZWERK SERVICE
Und dann ging der Ordner-Eigenschaften um zu überprüfen, ob der zugehörige Benutzer-account existiert auch unter Ihre Berechtigung tab. Es fehlte in meinem Fall und wenn ich habe es und es fixiert mein Problem.
Weitere Informationen überprüfen Sie bitte die unten im Screenshot
InformationsquelleAutor der Antwort Jitender Kumar
Ich auch vor dem gleichen problem, wenn Sie versuchen zu tun, das nach der Bereitstellung auf server:
Ich die Berechtigung im IIS für die andere Gruppe, einschließlich administrator und mein problem gelöst habe.
InformationsquelleAutor der Antwort Manish Singh
Habe ich festgestellt, dass dieser Fehler auftreten können, kann im DESIGN-MODUS im Gegensatz zu ? Ausführung-Modus...
Wenn Sie etwas tun, wie das erstellen einer Klasse, die den Zugriff erfordert .INI-oder .HTM-Datei (Konfigurations-Datei, Hilfe-Datei), die Sie möchten möglicherweise NICHT initialisiert werden das Element in der Erklärung, aber initialisieren Sie es später in FORM_Load() etc...
Wenn Sie initialisieren... Verwenden Sie einen Hut, WENN-Anweisung:
Diese halten die MSVS-Designer von versuchen, erstellen Sie eine INI-oder HTM-Datei, wenn Sie im design-Modus.
InformationsquelleAutor der Antwort Terry
Hatte ich diesen Fehler geworfen, als ich versucht habe einen Ordner umbenennen sehr schnell, nachdem es wurde entweder verschoben oder erstellt werden.
Einem einfachen
System.Threading.Thread.Sleep(500);
gelöst:InformationsquelleAutor der Antwort Arjan de Bruijn
In meinem konkreten Fall war ich immer wieder anlegen und löschen von 10000 Ordnern. Es scheint mir, dass das problem war, dass, obwohl die Methode
Directory.Delete(path, true)
gibt, die underlyining OS Mechanismus kann immer noch das löschen der Dateien von der Festplatte. Und wenn ich neue Ordner erstellen oder sofort nach delition alten, einige von Ihnen sind immer noch gesperrt, da Sie nicht vollständig gelöscht noch. Und ich bin langsam am System.UnauthorizedAccessException: "der Zugriff auf den Pfad wurde verweigert".Mit
Thread.Sleep(5000)
nachDirectory.Delete(path, true)
löst dieses problem. Ich Stimme absolut, dass dies nicht sicher, und ich bin nicht encourging jemand, es zu benutzen. Ich würde gerne hier eine bessere Vorgehensweise um dieses problem zu lösen, zu verbessern, meine Antwort. Jetzt bin ich nur geben Sie eine Idee, warum diese exception kann passieren.InformationsquelleAutor der Antwort Aleksei Mialkin