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

8

Ich habe IIS gerade auf Windows XP installiert.

Wenn ich versuche, eine App auszuführen, erhalte ich einen Fehler:

  

Der Zugriff auf den Pfad 'c: \ inetpub \ wwwroot \ myapp \ App_Data' wird verweigert.   Beschreibung: Eine nicht behandelte Ausnahme ist während der Ausführung von aufgetreten   die aktuelle Webanfrage. Bitte überprüfen Sie die Stack-Trace für mehr   Informationen über den Fehler und wo er im Code entstanden ist.

     

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

     

ASP.NET ist nicht berechtigt, auf die angeforderte Ressource zuzugreifen. Erwägen   Gewähren von Zugriffsrechten für die Ressource für die ASP.NET-Anforderung   Identität. ASP.NET verfügt über eine Basisprozessidentität (normalerweise   {MASCHINE} \ ASPNET auf IIS 5 oder Netzwerkdienst auf IIS 6), die verwendet wird, wenn   Die Anwendung gibt sich nicht als Identität aus. Wenn die Anwendung ist   sich über Identität auszudrücken, wird die Identität sein   der anonyme Benutzer (normalerweise IUSR_MACHINENAME) oder der authentifizierte Benutzer   Benutzer anfragen.

     

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

     

Quellfehler:

     

Zeile 70: Geschützter Sub cmbSettingFiles_SelectedIndexChanged (ByVal   Absender als Objekt, ByVal e als System.EventArgs) Handles   cmbSettingFiles.SelectedIndexChanged
  Zeile 71: Dim Doc Als XmlDocument = New XmlDocument ()
  Zeile 72: doc.Load (Pfad.Combine (BasisPfad, CmBSettingFiles.SelectedValue))   Zeile 74: Dim settingsNode als XmlNode = doc.SelectSingleNode ("/ settings")

     

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

Ich habe versucht, die Erlaubnis zu entziehen, indem ich Folgendes mache:

  

Um ASP.NET Zugriff auf eine Datei zu gewähren, klicken Sie mit der rechten Maustaste auf die Datei im Explorer.   Wählen Sie "Eigenschaften" und wählen Sie die Registerkarte Sicherheit. Klicken Sie auf "Hinzufügen", um hinzuzufügen   der entsprechende Benutzer oder die 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?

BEARBEITEN

Ich habe das Problem auf meinem Dev-Rechner gelöst, aber ich bekomme immer noch den Fehler auf meinem Webserver.

Danke.

    
Smith 21.04.2012, 02:56
quelle

9 Antworten

9
  

Versuchen Sie, zur Ordnereigenschaft App_Data zu wechseln und den ASPNET-Benutzer mit read hinzuzufügen   und schreiben Sie Privilegien

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

Wenn es Ihr Problem nicht löst, prüfen Sie, ob Ihre XML-Dateien nicht von einem anderen Thread geöffnet wurden, der diese Konfigurationsdateien verwendet .. und geben Sie weitere Details an, wenn sie weiterhin bestehen.

    
Niranjan Kala 21.04.2012, 07:47
quelle
4

Überlegen Sie, ob Ihre Datei schreibgeschützt ist, dann helfen die zusätzlichen Parameter möglicherweise mit FileStream

%Vor%     
KenF 24.04.2013 02:33
quelle
2

Für Benutzer von IIS unter Windows Server:

Standardmäßig hat der IIS-Benutzer keine Schreibberechtigung für den Ordner wwwroot . Dies kann gelöst werden, indem dem IIS_IUSRS -Benutzer für wwwroot volle 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 und wählen Sie den IIS-Benutzer aus. In meinem Fall hieß es IIS_IUSRS ([server name]\IIS_IUSRS) .
  5. Aktivieren Sie das Kontrollkästchen "Zulassen" für alle Berechtigungen.
Joshua Wade 10.07.2017 14:59
quelle
1

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. So wie die Datei gesperrt oder von einer anderen Anwendung verwendet wird. Da es sich um eine ASP.NET-Webanwendung handelt, sollten Sie sicherstellen, dass Sie keine Aktionen ausführen, bei denen die Datei gesperrt werden muss. es sei denn, Sie können garantieren, dass immer nur ein Benutzer auf Ihrer Seite ist.

Können Sie ein Beispiel dafür veröffentlichen, wie Sie auf die Datei zugreifen? Welche Art von Datei ist das? Codefragmente helfen Ihnen, eine genauere Antwort zu erhalten.

    
Shawn Lehner 21.04.2012 03:01
quelle
1

Ich hatte eine ähnliche Situation. Ich verwende TFS für die Quellcodeverwaltung. Was ich fand, war, dass wenn es eingecheckt wurde, es die Dateien nur gelesen hat. Dies verursachte den obigen Fehler in meinem Dienst, wo er sie lesen / schreiben öffnete. Einmal habe ich sie zum Bearbeiten überprüft. Alles hat super geklappt. Ich denke darüber nach, sie nur im Service zu öffnen. Ich denke, sobald sie auf dem Produktionsserver veröffentlicht werden, ist das 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 keine Aktualisierungen der Datenbank über EF durchführen.

    
Jim Wilcox 13.12.2013 15:01
quelle
1

Ich habe versucht, ASP.net v4.0 mit allen Berechtigungen hinzuzufügen, fügen Sie NETWORK SERVICE Benutzer hinzu, aber nichts hilft. Endlich, das MODIFY-Recht von DefaultAppPool Benutzer in App_Data Ordner, Problem gelöst hinzugefügt.

    
Tin 10.08.2015 06:43
quelle
0

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

Der Zugriff auf den Pfad wird verweigert C: \ inetpub \ wwwroot verweigert wird, gibt an, dass die Self-Service-Website nicht auf einen bestimmten Ordner auf dem Server zugreifen kann, auf dem sie installiert ist. Dies kann entweder der Fall sein, weil der Speicherort nicht existiert, oder weil dem authentifizierenden Benutzer keine Berechtigungen für das Schreiben an diesen Speicherort erteilt wurden.

    
Shibu Thomas 07.12.2015 07:53
quelle
0

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

    
Hiber 24.01.2014 07:08
quelle
0

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

    
Bilal 16.03.2017 05:14
quelle

Tags und Links