Kan het configuratiebestand niet lezen vanwege onvoldoende machtigingen

Ik heb onlangs een fout gevonden die probeert mijn ASP.NET-site met IIS te hosten. Ik heb een oplossing gevonden die veel zweer.

Oplossing:

  1. Voeg IIS_IUSRS toe met leesrechten op bestanden in de map
  2. Wijzig IIS-authenticatiemethode naar BasicAuthentication
  3. Vernieuw de website. Het zal werken

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

Wat voeg ik echter aan mijn web.config-bestand toe? Ik heb het nooit eerder moeten bewerken. Hier is de huidige inhoud:

<?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>

Mijn fout is:

FOUT FOUT: kan het configuratiebestand niet lezen vanwege onvoldoende machtigingen
Config-bestand: \? \ C: \ Gebruikers ***** \ Documenten \ Visual Studio2010 \ Websites \ PuntenFortime \ Web.config


1, Autoriteit 100%

Er is Geen probleem met uw web.config . Uw website werkt onder een proces. In IIS kunt u de identiteit van dat proces definiëren. De Identity dat uw website Toepassingspool werkt als (Network Services, Local System , enz.), Moet toestemming hebben om toegang te krijgen tot en te lezen .Config-bestand.

Update:

Dit bijgewerkte antwoord is hetzelfde als hierboven, maar een beetje langer en eenvoudiger en verbeterd.

Allereerst : u hoeft niets te wijzigen in uw configuratiebestand. Het is OK . Het probleem is met Windows-bestandsrechten .

Voor deze problemen vindt u plaats omdat uw aanvraag niet toegang en Web.config bestand lezen.

Maak het bestand toegankelijk voor iIS_iusrs groep. Gewoon Klik met de rechtermuisknop op Web.Config en klik op Eigenschappen , onder Security Tabblad, voeg IIS_IUSRS toe.

Dus wat is dit IIS_IUSRS-ding?

Uw Web Site is als een exe -bestand. Net als elk exe-bestand, moet het zijn gestart door een gebruiker en het runt volgens de machtigingen toegewezen aan die gebruiker.

Wanneer uw site wordt gestart in IIS , Application Pool van uw website is geassocieerd met een gebruiker (netwerkdiensten, Lokaal systeem , etc. …) (en kan worden gewijzigd in IIS)

Dus wanneer u iIS_iusrs zegt, betekent dit elke gebruiker (netwerkdiensten, lokaal systeem , enz. …) dat uw site loopt als.

en als @Seph vermeld in opmerking hieronder : Als uw computer zich op een domein bevindt , onthoud dan dat IIS_IUSRS Group is een lokale groep .
Zorg er ook voor dat wanneer u deze gebruiker probeert te vinden, controleer op de locatie, het moet worden ingesteld op de lokale computer en geen bedrijfsdomein.


2, Autoriteit 13%

Ik had wat verscheen dezelfde machtigingen uit te voeren op de web.configbestand.
Mijn probleem is echter veroorzaakt door IIS die het Config-bestand niet laadt omdat deze URL-herschrijfregels bevatte en ik had de IIS-URL-herschrijfmodule op de nieuwe server niet geïnstalleerd.

oplossing: Installeer de herschrijfmodule.
Hoop dat dat iemand een paar uur redt.


3, Autoriteit 11%

Opmerking: doen wat dit antwoord zegt is gevaarlijk ! Het LocalSystem-account is een …

Volledig vertrouwde account, meer dan het beheerdersaccount. Er is niets op een enkele doos die dit account niet kan doen, en het heeft het recht om toegang te krijgen tot het netwerk als de machine (dit vereist Active Directory en het verlenen van de Machine-accountrechten aan iets)


De identiteit wijzigen van -toepassingspoolImidity To LocalSystem deed het werk;).

Ik gebruik Win7 64 met IIS 7,5

meer over
Toepassingsbadidentiteit in IIS 7.5 en Win 7


Antwoord 4, autoriteit 10%

Ik had hetzelfde probleem toen ik probeerde de hoofdmap van de site te delen met een andere gebruiker. Een map verloor de toestemming.
Dus volgde ik de stappen om toestemming toe te voegen aan de IIS_IUSRSgroep zoals voorgesteld door Afshin Gh.
Het probleem is dat deze groep niet beschikbaar was voor mij. Ik gebruik Windows 7.

Wat ik deed, ik heb zojuist enkele stappen gewijzigd:

  1. Klik met de rechtermuisknop op de bovenliggende map (die de toestemming heeft verloren),
  2. Eigenschappen => Beveiliging =>In “Groeps- of gebruikersnamen:”,
  3. Klik op Bewerken…
  4. Venster “Toestemming voor uw map” wordt geopend.
  5. Druk in “Groeps- of gebruikersnamen:” op TOEVOEGEN… btn,
  6. Typ Authentieken druk op Namen controleren,
  7. Je ziet de volledige groepsnaam “Geverifieerde gebruikers
  8. Druk op ok => toepassen.
  9. Dit zou de privileges weer moeten inschakelen.

Dat werkte voor mij.


Antwoord 5, autoriteit 3%

U hoeft niets te wijzigen in uw web.config.

Het probleem is de bestandssysteemmachtiging. Uw bestandsmachtigingen geven de IIS_IUSRS-gebruiker geen toegang tot web.config (of waarschijnlijk een van de bestanden). Wijzig hun bestandsrechten in Windows om het IIS_IUSRS-account toegang te geven.


Antwoord 6, autoriteit 3%

Maak het bestand toegankelijk voor de groep IIS_IUSRS. Klik met de rechtermuisknop op uw web.config, vouw eigenschappen uit en voeg onder het tabblad Beveiliging IIS_IUSRS toe. Geef de groep lees-/schrijftoegang.

Als de groep NIETbeschikbaar is, vervang dan IIS_IUSRS door ComputerName\IIS_IUSRS


Antwoord 7, autoriteit 2%

Als u machtigingen verleent aan IIS_IUSRS, moet u controleren of in het gedeelte IIS/Authenticatievan uw webtoepassing, de Anonieme verificatiegegevens gebruikmaken van Application Pool Identity en niet IUSR.


8, Autoriteit 2%

Ga naar de bovenliggende map, klik met de rechtermuisknop en selecteer Eigenschappen . Selecteer het tabblad Security , bewerk de machtigingen en Voeg toe. Klik op Geavanceerd en de vind nu . Selecteer IIS_IUSRS en klik op OK en OK opnieuw. Zorg ervoor dat u Schrijf controleert. Klik op OK en OK opnieuw.

Job gedaan!


9

Om een ​​of andere reden is uw web.config alleen ingesteld als alleen lezen. Schakel de readonly-optie van Web.Config-bestand uit.


10

Ik moest machtigingen toevoegen aan IUSR (naast ISS-IUSRS, zoals anderen hebben gesuggereerd).
(Zie ook:
http : //codeasp.net/blogs/raghav_khunger/microsoft-net/2099/iis-7-5-windows-7-http-error-401-3-unautorized )


11

Ik heb GEBRUIKSEERD GEBRUIKT om een ​​in kaart te brengen van D: tot C: om dezelfde installatie als andere ontwikkelaars in het team te houden. Dit gaf me ook dezelfde fouten zoals beschreven. Deze repareren voor mij.


12

De geaccepteerde oplossing niet voor mij. Ik gebruik een git-repo en het is gekloneerd naar de volgende map

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

Ik heb een nieuwe IIS-website gemaakt en wees het op het pad. Dat had niet de IIS_IUSRS-machtigingen voorgesteld in de geaccepteerde oplossing. Toen ik de machtigingen toevoegde, werkte het nog steeds niet.

Het begon pas te werken toen ik de volgende machtigingen aan de groep ‘Gebruikers’ gaf en overerving de machtigingen trapsgewijs naar web.config bracht. Had het waarschijnlijk alleen op de web.config moeten toepassen om het aanvalsoppervlak te verkleinen.


Antwoord 13

Alle gegeven antwoorden zijn geldig en werken onder verschillende omstandigheden.

Voor mij werkte het herstarten van Visual Studio.


Antwoord 14

In plaats van toegang te geven aan alle IIS-gebruikers zoals IIS_IUSRS, kunt u ook alleen toegang geven tot de Application Pool Identity met behulp van de site. Dit is de aanbevolen aanpak van Microsoft en meer informatie vindt u hier:

https://support.microsoft.com /nl-za/help/4466942/inzichten-identities-in-iis

https://docs.microsoft .com/en-us/iis/manage/configure-security/application-pool-identities

Oplossing:

Begin door naar de parameter Config File hierboven te kijken om de locatie te bepalen die toegang nodig heeft. De hele map publishheeft in dit geval toegang nodig. Klik met de rechtermuisknop op de map en selecteer eigenschappen en vervolgens het tabblad Beveiliging.

Klik op Edit...en dan Add....

Kijk nu eens naar Internet Information Services (IIS) Manager en Application Pools:

In mijn geval draait mijn site onder LocalTest Application Pool en voer ik de naam IIS AppPool\LocalTest

in

Druk op Check Namesen de gebruiker zou gevonden moeten worden.

Geef de gebruiker de benodigde toegang (Standaard: Lezen & Uitvoeren, Mapinhoud weergeven en Lezen) en alles zou moeten werken.


Antwoord 15

We hadden een website draaiend met een specifieke identiteit in de apppool, pas nadat die gebruiker leestoegang had gegeven tot de map met de web.config zou het werken.
We hebben dit opgespoord nadat we de gebruiker ‘iedereen’ met lezen hadden toegevoegd en alles werkte prima.


Antwoord 16

Bij mij kwam de fout naar voren tijdens Debugging op mijn lokale computer en bleek deze gerelateerd te zijn aan de basis web.config, die wordt geïnitieerd door het .NET Framework bij het compileren van de website. Mijn bestand C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config had een niet-herkend element (folderLevelBuildProviders). Door dit op te lossen is de 500.19-fout opgelost.

Zie dit: IIS Manager kan niet configureren .NET-compilatie op .NET 4-toepassingen


Antwoord 17

De identiteit van het procesmodel wijzigen aan localsysteem heeft dit probleem voor mij opgelost. U vindt deze instelling als u met de rechtermuisknop klikt op het pool van de toepassing en koos “Geavanceerde instellingen”. Ik gebruik IIS 7.5.


18

Klik met de rechtermuisknop op Web.Config = & GT; Tab Security = & GT; Knop bewerken = & gt; Knop toevoegen = & gt; Knop geavanceerd = & gt; Knop zoeken nu = & GT; In de zoekresultaten selecteert u uw groep (in ons geval “IIS_IUSRS”) = & GT; OK = & GT; OK = & GT; OK


19

Ik heb dit opgelost door het toevoegen van leesrechten toestemming voor de map voor de gebruiker van de toepassing Pool (WIN SERVER 2008 R2):
C: \ Windows \ System32 \ Inetsrv \ Config

Een kleine achtergrond:
Onze server is gehackt met een klassieke fout waarbij de app-gebruiker meer rechten had dan zou moeten (lokale beheerder).

Om dit op te lossen hebben we een nieuwe domeingebruiker gemaakt die alleen machtigingen had voor de applicatiemap, met minimaal benodigde rechten, en deze toegewezen als applicatiegroepgebruiker. dan we in het probleem troffen en dit was een oplossing voor onze problemen.


Antwoord 20

Verplaats uw project naar een andere schijf dan C:
Werkte voor mij met dezelfde fout.


Antwoord 21

Dit kan gebeuren als uw toepassing zich in een virtuele map bevindt en het pad naar de bestanden een toegewezen station is.

Als u het pad naar de bestanden wijzigt naar een lokale schijf, zal dit het probleem oplossen, als dat inderdaad uw probleem is.


Antwoord 22

Ik ontving ook de melding “Kan configuratiebestand niet lezen vanwege onvoldoende machtigingen”. Blijkt dat de ISAPI- en CGI-beperkingen in IIS voor zowel ASP.NET 4.0 32bit als 64bit waren ingesteld om te weigeren. Door ze allebei op Toegestaan te markeren, werd mijn probleem opgelost.


Antwoord 23

De bovenstaande antwoorden waren nuttig, maar voor het geval iemand hier iets aan heeft – ik had precies dit probleem, en het bleek dat ik (windows-netwerken) de hoofdmap deelde van waaruit de site werd gehost. We hebben de share uitgeschakeld en de gebruikerstoestemming toegevoegd om te lezen/uitvoeren en het werkte weer prima.

Ik vermoed dat de share het verpest heeft.


Antwoord 24

Had dit probleem met een virtuele applicatie. Alle rechten waren ingesteld.
IIS_IUSRS, AppPoolIdentity en gaf vervolgens volledige toegang tot Iedereen. Niets werkte. Apppool, site en IIS opnieuw gestart, maar nee.

De virtuele applicatie verwijderd en helemaal opnieuw toegevoegd en het begon te werken.

Ik wou dat ik wist wat het oploste.


Antwoord 25

controleer of het bestand niet is gemarkeerd als alleen-lezen, ondanks de IIS_IUSRS-machtiging wordt hetzelfde bericht weergegeven.


Antwoord 26

Ik kreeg deze foutmelding die te wijten bleek te zijn aan het feit dat mijn fysieke map zich op een netwerkschijf bevond in plaats van op de lokale schijf. Het lijkt erop dat de machtigingen op dergelijke schijven standaard kunnen verschillen. Terwijl de lokale schijflocatie bijvoorbeeld toestemming gaf aan de gebruikers van de lokale computer, deed de netwerklocatie dat niet.

Verder werkt het geaccepteerde antwoord niet voor een dergelijk geval. De lokale gebruikers of IIS-gebruikers waren niet beschikbaar om machtigingen aan toe te wijzen. De oplossing was om de fysieke map naar de lokale schijf te verplaatsen.


Antwoord 27

Ik had hetzelfde probleem en nadat ik alle dingen had gedaan die hier als antwoorden waren geschreven, kwam het nog steeds terug.
De tweede helft van het probleem was het feit dat .NET was uitgeschakeld onder “Windows-functies in- of uitschakelen”


Antwoord 28

Soms, als het een nieuwe server is, moet u de ASP.NET-functie op IIS configureren of installeren om uw web.config-bestand te kunnen lezen.

In mijn geval was dit de reden.


Antwoord 29

In mijn geval probeerde ik pagina’s te hosten vanaf een toegewezen schijf (subst).
Het probleem is dat de subst onder mijn account is uitgevoerd en dat de IIS-gebruiker niet dezelfde schijf kan zien

Other episodes