webentwicklung-frage-antwort-db.com.de

Zugriff auf den Pfad "c:\inetpub\wwwroot\myapp\App_Data" wird verweigert

Ich habe gerade IIS unter Windows XP installiert.

Wenn ich versuche, eine App auszuführen, erhalte ich eine Fehlermeldung:

Zugriff auf den Pfad 'c:\inetpub\wwwroot\myapp\App_Data' wird verweigert . Beschreibung: Während der Ausführung von .__ ist eine nicht behandelte Ausnahme aufgetreten. die aktuelle Webanfrage. Bitte überprüfen Sie die Stack-Ablaufverfolgung auf weitere Informationen über den Fehler und den Ursprung des Codes.

Ausnahmedetails: System.UnauthorizedAccessException: Zugriff auf die Pfad 'c:\inetpub\wwwroot\myapp\App_Data' wird abgelehnt.

ASP.NET ist nicht berechtigt, auf die angeforderte Ressource zuzugreifen. Erwägen Erteilen von Zugriffsrechten für die Ressource für die ASP.NET-Anforderung Identität. ASP.NET verfügt über eine Basisprozessidentität (normalerweise {MACHINE}\ASPNET unter IIS 5 oder Netzwerkdienst unter IIS 6, die verwendet wird, wenn Die Anwendung ist nicht imitierend. Wenn die Anwendung .__ ist. Identitätswechsel via, wird die Identität der anonyme Benutzer (normalerweise IUSR_MACHINENAME) oder der authentifizierte Benutzer anfordern.

Um ASP.NET-Zugriff auf eine Datei zu gewähren, klicken Sie im Explorer mit der rechten Maustaste auf die Datei Wählen Sie "Eigenschaften" und wählen Sie die Registerkarte "Sicherheit". Klicken Sie auf "Hinzufügen", um .__ hinzuzufügen. der entsprechende Benutzer oder die entsprechende Gruppe. Markieren Sie das ASP.NET-Konto und Aktivieren Sie die Kontrollkästchen für den gewünschten Zugriff.

Quellfehler:

Zeile 70: Protected Sub cmbSettingFiles_SelectedIndexChanged (ByVal Sender als Objekt, ByValE als System.EventArgs) Verarbeitet cmbSettingFiles.SelectedIndexChanged
Zeile 71: Dim doc As XmlDocument = New XmlDocument ()
Zeile 72: doc.Load (Path.Combine (basePath, cmbSettingFiles.SelectedValue)) Zeile 74: Dim settingsNode As XmlNode = doc.SelectSingleNode ("/ settings")

Quelldatei: C:\myapp\install\install.aspx.vb Zeile: 72 

Ich habe versucht, die Erlaubnis zu bekommen, indem ich Folgendes tat:

Um ASP.NET-Zugriff auf eine Datei zu gewähren, klicken Sie im Explorer mit der rechten Maustaste auf die Datei Wählen Sie "Eigenschaften" und wählen Sie die Registerkarte "Sicherheit". Klicken Sie auf "Hinzufügen", um .__ hinzuzufügen. der entsprechende Benutzer oder die entsprechende Gruppe. Markieren Sie das ASP.NET-Konto und Aktivieren Sie die Kontrollkästchen für den gewünschten Zugriff.

Aber der Fehler bleibt bestehen.

Hat das etwas mit meinem Code zu tun?

Wie kann ich das beheben?

EDIT

Ich habe das Problem auf meinem Entwicklungscomputer gelöst, erhalte aber weiterhin den Fehler auf meinem Webserver.

Vielen Dank.

12
Smith

Versuchen Sie, zur Ordner-Eigenschaft "App_Data" zu wechseln, und fügen Sie den ASPNET-Benutzer mit read .__ hinzu. und schreibe Privilegien

Ref:
So weisen Sie dem Ordner "App_Data" von WebMail Pro ASP.NET die richtigen Berechtigungen zu
Berechtigungen für den APP_DATA-Ordner
ASP/ASP.NET Beste Möglichkeit, Schreibberechtigungen zu behandeln?

Wenn das Problem dadurch nicht gelöst wird, überprüfen Sie, ob Ihre XML-Dateien von einem anderen Thread mit diesen Konfigurationsdateien geöffnet werden, und geben Sie weitere Details an, falls diese weiterhin bestehen.

11
Niranjan Singh

Für diejenigen, die IIS unter Windows Server ausführen:

Standardmäßig hat der Benutzer IIS keine Schreibberechtigung für den Ordner wwwroot. Dieses Problem kann gelöst werden, indem dem IIS_IUSRS-Benutzer für wwwroot vollständige Berechtigungen erteilt werden.

  1. Öffnen Sie den Datei-Explorer und gehen Sie zu C:/inetpub/.
  2. Klicken Sie mit der rechten Maustaste auf wwwroot und klicken Sie auf "Eigenschaften".
  3. Gehen Sie zur Registerkarte "Sicherheit" und klicken Sie auf "Bearbeiten", um die Berechtigungen zu bearbeiten
  4. Suchen Sie den Benutzer IIS und wählen Sie ihn aus. In meinem Fall hieß es IIS_IUSRS ([server name]\IIS_IUSRS).
  5. Aktivieren Sie das Kontrollkästchen "Zulassen" für alle Berechtigungen.
7
Joshua Wade

Wenn Ihre Datei schreibgeschützt ist, können die zusätzlichen Parameter bei FileStream hilfreich sein.

using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read))
4
KenF

Ich habe versucht, ASP.net v4.0 mit aller Berechtigung hinzuzufügen. Fügen Sie den NETWORK SERVICE-Benutzer hinzu, aber nichts hilft. Endlich fügte das MODIFY-Recht des DefaultAppPool-Benutzers im Ordner App_Data das Problem hinzu.

1
Tin

Ich hatte eine ähnliche Situation. Ich verwende TFS zur Quellcodekontrolle. Ich fand heraus, dass beim Einchecken die Dateien nur lesbar waren. Dies führte zu dem oben genannten Fehler in meinem Dienst, bei dem sie Lese-/Schreibzugriff auf sie eröffnen. Einmal habe ich sie zur Bearbeitung ausgecheckt. Alles hat super geklappt. Ich überlege mir, zu versuchen, sie im Dienst zu öffnen. Ich denke, sobald sie auf dem Produktionsserver veröffentlicht werden, ist dies kein Problem. Nur in der Entwicklungsumgebung. Ich habe ähnliche Probleme mit Services gesehen, die Entity Framework verwenden. Wenn die .svc-Datei eingecheckt ist, können Sie die Datenbank nicht über EF aktualisieren.

1
Jim Wilcox

Sind Sie sicher, dass Sie den richtigen Benutzer hinzufügen? Haben Sie überprüft, welcher Benutzer für Ihren Anwendungs-App-Pool festgelegt ist?

Dieser Fehler tritt auch auf, wenn die Datei aus irgendeinem Grund nicht gelesen werden kann. Die Datei ist beispielsweise gesperrt oder wird von einer anderen Anwendung verwendet. Da dies eine ASP.NET-Webanwendung ist, sollten Sie sicherstellen, dass Sie keine Aktionen ausführen, bei denen die Datei gesperrt werden muss. Es sei denn, Sie können garantieren, dass Sie jeweils nur einen Nutzer auf Ihrer Seite haben.

Können Sie ein Beispiel für den Zugriff auf die Datei posten? Um welche Art von Datei handelt es sich? Code-Snippets helfen Ihnen, eine genauere Antwort zu erhalten.

1
Shawn Lehner

Ein anderer Grund könnte sein, dass der Dateipfad leer ist, wo Sie versuchen zu schreiben, weshalb er ihn nicht finden kann. Ein weiterer Grund, warum dieser Fehler auftritt.

0
Bilal

Bitte führen Sie Visual Studio mit Administratorrechten aus. Dieses Problem ist für mich gelöst.

Zugriff auf den Pfad wurde verweigert C:\inetpub\wwwroot Wird verweigert Gibt an, dass die Self Service-Website nicht auf einen bestimmten Ordner auf dem Server zugreifen kann, auf dem er installiert ist. Dies kann entweder daran liegen, dass der Speicherort nicht vorhanden ist, oder dass der authentifizierende Benutzer keine Berechtigungen für das Schreiben an diesen Speicherort besitzt.

0
Shibu Thomas

Versuchen Sie, dem NETWORK SERVICE-Benutzer die Berechtigung zu erteilen.

0
Hiber