it-swarm.com.de

Konfigurationsdatei kann aufgrund unzureichender Berechtigungen nicht gelesen werden

Ich habe kürzlich einen Fehler beim Hosting meiner asp.net-Site mit IIS festgestellt. Ich habe eine Lösung gefunden, auf die viele schwören.

Lösung:

  1. Fügen Sie IIS_IUSRS mit Leseberechtigung für Dateien im Ordner hinzu
  2. Ändern Sie die Authentifizierungsmethode IIS in BasicAuthentication
  3. aktualisieren Sie die Website. Es wird klappen

( http://vivekthangaswamy.blogspot.com/2009/07/aspnet-website-cannot-read.html )

Was füge ich meiner web.config-Datei hinzu? Ich musste es noch nie zuvor bearbeiten. Hier ist der aktuelle Inhalt:

<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.Microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
    <connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
   providerName="System.Data.SqlClient" />
 </connectionStrings>
 <system.web>
  <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
    </system.web>
</configuration>

Mein Fehler ist:

Konfigurationsfehler: Konfigurationsdatei kann aufgrund unzureichender Berechtigungen nicht gelesen werden
Konfigurationsdatei: \?\C:\Users *****\Documents\Visual Studio2010\WebSites\PointsForTime\web.config

300
FreeSnow

Anmerkung der Redaktion: Das zu tun, was diese Antwort sagt, ist DANGEROUS ! Das LocalSystem-Konto ist ein ...

Vollständig vertrauenswürdiges Konto, mehr als das Administratorkonto. Es gibt nichts in einer einzelnen Box, das dieses Konto nicht ausführen kann, und es hat das Recht, als Maschine auf das Netzwerk zuzugreifen (dies erfordert Active Directory und das Erteilen von Berechtigungen für das Computerkonto)


Das Ändern der Identität von ApplicationPoolIdentity in LocalSystem hat die Arbeit erledigt;).

Ich verwende win7 64 mit IIS 7.5

mehr über Anwendungspoolidentität in IIS 7.5 und gewinnen Sie 7

enter image description here

65
amd

Ich hatte das gleiche Berechtigungsproblem in der web.config-Datei.
Mein Problem wurde jedoch dadurch verursacht, dass IIS die Konfigurationsdatei nicht lädt, weil sie URL-Umschreiberegeln enthielt und ich das IIS -Urschreibmodul nicht auf dem neuen Server installiert hatte.

Lösung: Installieren Sie das Überschreibmodul.
Hoffe, das spart jemand ein paar Stunden.

55
Jarrod

Ich hatte das gleiche Problem, als ich versuchte, den Stammordner der Site für einen anderen Benutzer freizugeben. In einem Ordner ist die Berechtigung nicht vorhanden. Daher folgte ich den Schritten, um die Berechtigung zu IIS_IUSRS group hinzuzufügen, wie von Afshin Gh ..__ vorgeschlagen. Das Problem ist, dass diese Gruppe für mich nicht verfügbar war. Ich benutze Windows 7.

Was ich getan habe, habe ich gerade ein paar Schritte geändert:

  1. Klicken Sie mit der rechten Maustaste auf den übergeordneten Ordner (der die Berechtigung verloren hat).
  2. Eigenschaften => Sicherheit => In "Gruppen- oder Benutzernamen:",
  3. Klicken Sie auf Bearbeiten ...
  4. Fenster "Berechtigung für Ihren Ordner" wird geöffnet.
  5. In "Gruppen- oder Benutzernamen:" drücken Sie HINZUFÜGEN ...
  6. Geben Sie Authen ein und drücken Sie Namen überprüfen.
  7. Sie sehen den vollständigen Gruppennamen " Authenticated Users "
  8. Drücken Sie OK => Übernehmen.
  9. Dies sollte wieder Privilegien ermöglichen.

Das hat bei mir funktioniert.

27
zwitterion

Sie müssen nichts in Ihrer web.config ändern.

Das Problem sind Dateisystemberechtigungen. Ihre Dateiberechtigungen erlauben dem IIS_IUSRS-Benutzer nicht den Zugriff auf web.config (oder möglicherweise auf eine der Dateien). Ändern Sie ihre Dateiberechtigungen in Windows, damit das Konto IIS_IUSRS darauf zugreifen kann.

17

Machen Sie die Datei für die Gruppe IIS_IUSRS zugänglich. Klicken Sie mit der rechten Maustaste auf Ihre web.config-Datei, erweitern Sie die Eigenschaften, und fügen Sie unter der Registerkarte "Sicherheit" IIS_IUSRS hinzu. Erteilen Sie der Gruppe Lese- und Schreibzugriff. 

Wenn die GruppeNICHTverfügbar ist, ersetzen Sie IIS_IUSRS durch Computername\IIS_IUSRS .

14

Gehen Sie zum übergeordneten Ordner, klicken Sie mit der rechten Maustaste und wählen Sie Properties . Wählen Sie die Registerkarte Security , bearbeiten Sie die Berechtigungen und Add . Klicken Sie auf Erweitert und auf Jetzt suchen . Wählen Sie IIS_IUSRS aus und klicken Sie erneut aufOKundOK. Stellen Sie sicher, dass Sie über Write verfügen. Klicken Sie erneut aufOKundOK.

Job erledigt!

14
Quinny

Wenn Sie Berechtigungen für IIS_IUSRS erteilen, sollten Sie im Abschnitt IIS/Authentication Ihrer Webanwendung überprüfen, dass die anonymen Authentifizierungsberechtigungsnachweise Anwendungspoolidentität und nicht IUSR verwenden.

enter image description here

9
Carlos

Aus irgendeinem Grund ist Ihre web.config schreibgeschützt. Deaktivieren Sie die Option readonly der Datei web.config.

6
Luis

Ich musste der IUSR Berechtigungen hinzufügen (zusätzlich zu ISS-IUSRS, wie andere vorgeschlagen haben) .. (Siehe auch: http://codeasp.net/blogs/raghav_khunger/Microsoft-net/2099/iis-7-5-windows-7-http-error-401-3-unautorisiert )

5
coberlin

Ich habe subst verwendet, um ein Mapping von D: nach C: zu erstellen, um die gleichen Einstellungen wie andere Entwickler im Team zu erhalten. Dies gab mir auch die gleichen Fehler wie beschrieben. Durch das Entfernen wurde das Problem behoben.

3
Sniipe

Stellen Sie sicher, dass Ihre Datei web.config nicht als schreibgeschützt markiert ist

1
Oranit Dar

Durch die Änderung der Prozessmodellidentität in LocalSystem wurde dieses Problem für mich behoben. Sie finden diese Einstellung, wenn Sie mit der rechten Maustaste auf den Anwendungspool klicken und "Erweiterte Einstellungen" wählen. Ich führe IIS 7.5 aus.

1
jshoaf

Versetzen Sie Ihr Projekt auf ein anderes Laufwerk als C: Hat mit dem gleichen Fehler für mich gearbeitet.

1
Talha Imam

Ich habe dieses Problem gelöst, indem ich dem Ordner für den Anwendungspoolbenutzer (WIN SERVER 2008 R2) die Leseberechtigung hinzugefügt habe: C:\Windows\System32\inetsrv\config

Ein kleiner Hintergrund: Unser Server wurde mit einem klassischen Fehler gehackt, bei dem der App-Benutzer mehr Berechtigungen hatte, als er sollte (lokaler Administrator).

Um das Problem zu beheben, haben wir einen neuen Domänenbenutzer erstellt, der nur über Berechtigungen für den Anwendungsordner verfügte, mit mindestens erforderlichen Rechten und diesen als Anwendungspoolbenutzer zugewiesen. als wir in der Ausgabe getroffen haben, und dies war die Lösung unserer Probleme.

1
ludens

Alle Antworten sind gültig und funktionieren unter verschiedenen Umständen.

Der Neustart von Visual Studio hat für mich funktioniert.

1
Doruk

Die akzeptierte Lösung war nicht für mich. Ich benutze ein Git-Repo und habe es in den folgenden Ordner geklont

c:\users\myusername\source\repos\myWebSite

Ich habe eine neue IIS - Website erstellt und auf den Pfad hingewiesen. Für die in der akzeptierten Lösung vorgeschlagenen Berechtigungen iis_iusrs wurden keine Berechtigungen angegeben. Als ich die Berechtigungen hinzufügte, funktionierte es immer noch nicht.

Es funktionierte erst, als ich der Gruppe "Benutzer" die folgenden Berechtigungen erteilte und die Vererbung die Berechtigungen für web.config kaskadierte. Hätte es wahrscheinlich nur auf die web.config anwenden sollen, um die Angriffsfläche zu reduzieren.

 User Pemissions

1
Tom McDonald

Wir hatten eine Website mit einer bestimmten Identität im Apppool, nachdem dieser Benutzer Lesezugriff auf den Ordner mit der Datei "web.config" erhalten hatte, der funktionieren würde ... Wir haben dies festgestellt, nachdem der Benutzer "Everyone" mit read und allem hinzugefügt wurde hat gut funktioniert.

1
rob

Für mich ist der Fehler während des Debugging auf meinem lokalen Computer aufgetreten und hat sich auf die Basis web.config bezogen, die von .NET Framework beim Kompilieren der Website ausgelöst wird. Die Datei C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config enthielt ein unbekanntes Element (folderLevelBuildProviders). Durch die Behebung dieses Problems wurde der Fehler 500.19 behoben.

Siehe dies: IIS Manager kann .NET-Kompilierung in .NET 4-Anwendungen nicht konfigurieren

1
Rafael Emshoff

Dies ist uns passiert, als die IIS-Anwendung ein virtuelles Verzeichnis mit einem physischen Pfad enthält, das Schrägstriche enthält / statt Backslashes \. Dies wurde versehentlich mithilfe einer Powershell-Verwaltungs-API für IIS während unseres kontinuierlichen Bereitstellungsprozesses durchgeführt.

Beispiel für eine fehlerhafte Konfiguration - applicationHost.config

<application path="/MySite/MyService" applicationPool="MyAppPool" enabledProtocols="http">
    <virtualDirectory path="/" physicalPath="C:\inetpub\MySite/MyService" />
</application>

Stellen Sie sicher, dass das Attribut physicalPath keine Schrägstriche enthält /, nur Backslashes \

Beispiel für korrigierte Konfiguration - applicationHost.config

<application path="/MySite/MyService" applicationPool="MyAppPool" enabledProtocols="http">
    <virtualDirectory path="/" physicalPath="C:\inetpub\MySite\MyService" />
</application>
1

Klicken Sie mit der rechten Maustaste auf Web.Config => Registerkarte Sicherheit => Schaltfläche Bearbeiten => Schaltfläche Hinzufügen => Schaltfläche Erweitert => Schaltfläche Jetzt suchen => Wählen Sie in den Suchergebnissen Ihre Gruppe (in unserem Fall "IIS_IUSRS") => Ok = > Ok => Ok

1
Igor Levkivskiy
  1. Gehe zu IIS (Sites)
  2. Klicken Sie mit der rechten Maustaste auf das Projekt innerhalb der Sites. Geben Sie eine Bildbeschreibung ein hier

und klicken Sie auf Erlaubnis bearbeiten.

  1. Gehen Sie zur Sicherheit.

  2. klicken Sie auf die Schaltfläche Bearbeiten.

  3. klicken Sie auf die Schaltfläche Hinzufügen. Geben Sie COMPUTER_NAME\IIS_USERS ein

    oder

  4. klicken Sie auf "Weiter".

  5. klicken Sie auf die Schaltfläche Jetzt suchen.

    und es gibt eine Option zur Auswahl von . Wählen Sie IIS_USERS und klicken Sie auf OK ... OK .... OK .

0
subash adhikari

Wenn es sich um einen neuen Server handelt, müssen Sie manchmal die ASP.NET-Funktion unter IIS konfigurieren oder installieren, damit Sie Ihre web.config-Datei lesen können. 

In meinem Fall war das der Grund.

0
SanthoshM

Ich gab die Erlaubnis und benutzte ICACLS.exe, funktionierte aber nicht. Dann habe ich den physischen Pfad geändert und es hat erfolgreich funktioniert.

(IIS 8.5-Fenster 2012 R2)

0
Adem Aygun

Dies kann passieren, wenn sich Ihre Anwendung in einem virtuellen Verzeichnis befindet und der Pfad zu den Dateien ein zugeordnetes Laufwerk ist. 

Wenn Sie den Pfad zu den Dateien auf ein lokales Laufwerk ändern, wird dies gelöst, wenn dies tatsächlich Ihr Problem ist.

0
UKcentric

Ich habe die meisten der vorherigen Vorschläge ausprobiert, aber vergeblich. Ich kann die Website nicht neu laden. Deshalb habe ich die .csproj-Datei bearbeitet und die Portnummer geändert. Die hat sofort funktioniert:

 <WebProjectProperties>
      <UseIIS>True</UseIIS>
      <AutoAssignPort>True</AutoAssignPort>
      <DevelopmentServerPort>**4000**</DevelopmentServerPort>
      <DevelopmentServerVPath>/</DevelopmentServerVPath>
      <IISUrl>http://localhost:**4000**/</IISUrl>
      <NTLMAuthentication>False</NTLMAuthentication>
      <UseCustomServer>False</UseCustomServer>
      <CustomServerUrl>
      </CustomServerUrl>
      <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
    </WebProjectProperties>

.csproj-Datei bearbeiten

0
Ramadan Alrai

Ich erhielt auch die Meldung "Konfigurationsdatei kann aufgrund unzureichender Berechtigungen nicht gelesen werden". Es stellt sich heraus, dass die ISAPI- und CGI-Einschränkungen in IIS sowohl für ASP.NET 4.0 32 Bit als auch für 64 Bit auf Ablehnung festgelegt waren. Beides zu markieren, um das Problem zu beheben, wurde behoben.

0
Earl

Überprüfen Sie, ob die Datei nicht als read-only markiert ist. Trotz der Berechtigung IIS_IUSRS wird dieselbe Nachricht angezeigt.

0
Syed Umar Ahmed

Ich hatte das gleiche Problem und keine dieser Lösungen funktionierte für mich. Ich habe immer den gleichen Fehler und eine Fehlermeldung über "Fehler beim Starten der Überwachung von Änderungen" in der Ereignisanzeige erhalten. 

Das einzige, was funktioniert hat, war, den Ordner zu kopieren und ihn umzubenennen. Es muss ein beschädigter Ordner in Windows gewesen sein, auf den IIS/ASP.NET nicht zugreifen konnte.

0
Trent U

Ich habe eine Website unter localhost/MyApp betrieben, die von Visual Studio erstellt und ausgeführt wird - über ein virtuelles Verzeichnis, das von Visual Studio selbst erstellt wurde.

Die "Lösung" bestand für mich darin, das virtuelle Verzeichnis zu löschen und es von Visual Studio neu erstellen zu lassen.

0
WernerCD

Diese Fehlermeldung hatte sich herausgestellt, weil sich mein physischer Ordner auf einem Netzlaufwerk und nicht auf dem lokalen Laufwerk befand. Es scheint, dass die Berechtigungen für solche Laufwerke standardmäßig unterschiedlich sein können. Während der Ort des lokalen Laufwerks beispielsweise den Benutzern des lokalen Computers die Berechtigung gab, war dies nicht der Ort des Netzwerks.

Außerdem funktioniert die akzeptierte Antwort für einen solchen Fall nicht. Die lokalen Benutzer oder IIS - Benutzer standen nicht zur Verfügung, um Berechtigungen zuzuweisen. Die Lösung bestand darin, den physischen Ordner auf das lokale Laufwerk zu verschieben.

0
Kat

Ich hatte das gleiche Problem und nachdem ich all das geschrieben hatte, was hier als Antwort geschrieben wurde, wurde es immer noch reproduziert. Die zweite Hälfte des Problems bestand darin, dass .NET unter "Windows-Funktionen ein- oder ausschalten" deaktiviert war.

0
Bogdan Mates

Dies ist sicherlich ein Problem mit Berechtigungen. Ich habe folgende Schritte unternommen und es hat für mich funktioniert.

  1. wählen Sie Ihre Website oder Anwendung in der linken Ecke aus. In den meisten Fällen wäre es unter Default Website .
  2. klicken Sie auf Grundeinstellungen in der rechten Ecke in IIS Manager 7 oder höher.
  3. klicken Sie auf Verbinden als Taste.
  4. Verwenden Sie " Specific User ", klicken Sie auf die Schaltfläche "Einstellen".
  5. Geben Sie Ihren Benutzernamen und Ihr Passwort ein. wie Domain\Benutzername . Für mich war es wie ABC\rrajkumar, gib das Passwort ein.
  6. starten Sie IIS neu, durchsuchen Sie Ihre Website. Es sollte jetzt klappen.
0
CredibleAshok

In meinem Fall habe ich versucht, Seiten von einem zugeordneten Laufwerk (Subst) zu hosten. Das Problem ist, dass der Subst unter meinem Konto ausgeführt wurde und der Benutzer IIS nicht dasselbe Laufwerk sehen kann

0
Dinesh Rajan

Dieses Problem wurde unter Windows 10 mit dem App Pool unter Verwendung eines Kontos "microsoftaccount\[email protected]" ausgeführt (z. B. Anmelden mit einem Microsoft-Konto anstelle eines lokalen Kontos bei dem PC).

Anscheinend wurde auf meinem Computer etwas beschädigt; Durch das Entfernen von IIS und erneutes Hinzufügen wurde nichts ausgeführt (da die Metabasis IIS anscheinend nicht entfernt wurde). Das Löschen und Neuerstellen des App-Pools half auch nicht. 

Meine Lösung bestand darin, einen neuen App-Pool mit den gleichen Einstellungen, aber einem anderen Namen zu erstellen. Dies hat das Problem für mich behoben. anscheinend wurde mit dem apppool etwas beschädigt, was selbst das Löschen und erneute Hinzufügen mit demselben Namen nicht beheben würde.

0
Andy

Hatte dieses Problem mit einer virtuellen Anwendung. Alle Berechtigungen wurden festgelegt. IIS_IUSRS, AppPoolIdentity und gaben dann vollen Zugriff auf Alle. Nichts hat geklappt. Apppool, Site und IIS wurden neu gestartet, aber "Nein".

Die virtuelle Anwendung wurde gelöscht und von Grund auf neu hinzugefügt, und die Arbeit begann.

Ich wünschte, ich wusste, was gelöst wurde.

0
gbs