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:
- Fügen Sie IIS_IUSRS mit Leseberechtigung für Dateien im Ordner hinzu
- Ändern Sie die Authentifizierungsmethode IIS in BasicAuthentication
- 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
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
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.
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:
Das hat bei mir funktioniert.
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.
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 .
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!
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.
Aus irgendeinem Grund ist Ihre web.config schreibgeschützt. Deaktivieren Sie die Option readonly der Datei web.config.
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 )
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.
Stellen Sie sicher, dass Ihre Datei web.config nicht als schreibgeschützt markiert ist
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.
Versetzen Sie Ihr Projekt auf ein anderes Laufwerk als C: Hat mit dem gleichen Fehler für mich gearbeitet.
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.
Alle Antworten sind gültig und funktionieren unter verschiedenen Umständen.
Der Neustart von Visual Studio hat für mich funktioniert.
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.
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.
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
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.
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 \
applicationHost.config
<application path="/MySite/MyService" applicationPool="MyAppPool" enabledProtocols="http">
<virtualDirectory path="/" physicalPath="C:\inetpub\MySite\MyService" />
</application>
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
und klicken Sie auf Erlaubnis bearbeiten.
Gehen Sie zur Sicherheit.
klicken Sie auf die Schaltfläche Bearbeiten.
klicken Sie auf die Schaltfläche Hinzufügen. Geben Sie COMPUTER_NAME\IIS_USERS ein
oder
klicken Sie auf "Weiter".
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 .
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.
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)
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.
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>
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.
Überprüfen Sie, ob die Datei nicht als read-only markiert ist. Trotz der Berechtigung IIS_IUSRS wird dieselbe Nachricht angezeigt.
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.
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.
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.
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.
Dies ist sicherlich ein Problem mit Berechtigungen. Ich habe folgende Schritte unternommen und es hat für mich funktioniert.
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
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.
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.