ChatGPT解决这个技术问题 Extra ChatGPT

IIS 500.19 with 0x80070005 The requested page cannot be accessed because the related configuration data for the page is invalid error

I want to upload my own asp.net website on IIS with IIS Manager. But when I do this, I get the following error

HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid

Module IIS Web Core Notification Unknown Handler Not yet determined Error Code 0x80070005 Config Error Cannot read configuration file due to insufficient permissions Config File \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config

I searched many times for a solution for this error, but none of the solutions solved the error.

I have a problem with my IUSR account. I can't see this account in the "group or user names" in the properties of the web.config.

What is the problem?

I had this issue after reverting some changes via Subversion (although it could be a coincidence). I noticed that the Web.config file's ACLs were different to other files in the directory and it was not inheriting from it's parent. I enabled ACL inheritance and everything went back to normal.
My solution was slightly different. On some Windows Server 2008 machines, you need to give access to the "IIS_IUSRS" group, not the "IUSR" user--within the site folder security permissions. Make sure to go to your machine's location.
I had this issue moving a site to a server that didn't have the IIS Url Rewrite module installed.
This can happen IF you've renamed your server. I did this to myself - and ultimately had to just go in (Windows Server 2012 R2) and re-add IIS APPPOOL\SiteName... and that 100% fixed this.
if you're new to deploying ASP.NET Core apps on your older 2008 R2 server, you need to Install the .NET Core Windows Server Hosting bundle - as I learned at this answer

b
bkaid

This can also happen if the site is configured to use the IIS URL Rewrite module but it is not installed.


Well played. It'd be nice if IIS would throw an "I don't understand what is" error, rather than complaining about malformed XML.
Thank you much - that was my issue too. Rewrite module is in use if you see tag. One would think IIS could tell you what is can't parse.
Nice easy way to resolve the missing dependancy on the command line; webpicmd /Install /Products:UrlRewrite2
I'd just like to note that if your web.config includes a tag, then you need the rewrite module.
Had the same problem running an Angular 8 application in IIS 10 on Windows 10. The solution was to load Microsoft URL Rewriting from: iis.net/downloads/microsoft/url-rewrite. The test to determine that this was the issue was to edit my web.config file to comment out the <rewrite> section. With the section commented out, the app worked but could only browse to the root component. As soon as did this install, the app including routes worked.
M
Martin Braun

Finally, I got the solution for my problem. The ASP.net account did not appear in the IIS manager, because I didn’t check its checkbox in IIS. To do this in Windows 7 follow the steps:

Open control panel Click on “program” link (not uninstall programs) Click “turn windows features on/off” link Locate “Internet Information services IIS” in the pop up window and expand its node Expand the “World Wide Web Service” node Expand “Application Development Features” node Check the check box of “ASP.NET” Then click ok button

Now, you will see the ASP.net account on the IIS manager and by default you will see the IIS account. Now, you should move your ASP.net website from “my document” to another place where the IIS have permission to access it (i.e. to another partition on your computer). Now, browse your website from the IIS manager and it should work.

Thanks a lot for Jeff Turner for the solution.


Someone must have removed this role service from a server that had been running for months. I would never have guessed to double check that. Ugh.
Even easier, using the command line: dism /NoRestart /Online /Enable-Feature /FeatureName:IIS-ASPNET
Thanks... how can they release a product with such low level of error messages?
My section had a reference to WebDAV and once I added the WebDAV feature to IIS it worked.
After Windows 10 update including updates to .Net 3.5 and 4.8, I encountered this problem. The above solution worked for me and was a lifesaver.
K
Konrad Viltersten

The message is saying that your configuration file is corrupt in some way. However it also says that it can't actually access the config file. So I'd ignore the original message about corruption/lack of validity as this is most likely just the effect of not being able to read the file due to a lack of authorization.

The reason it cannot read the config file is because the process running your web app does not have permission to access the file/directory. So you need to give the process running your web app those permissions.

The access rights should be fairly straightforward, i.e. at least Read, and, depending on your app, maybe Write.

Above, you mention IUSR etc. not being in the properties for web.config. If by that you mean that IUSR is not listed in the security tab of the file then it's a good thing. One doesn't want to give IUSR any kind of permission to web.config. The role IUSR is an anonymous internet user.

The file web.config should only be accessible through your application.

The problem is you haven't said which OS and IIS version you are using so it's difficult to advise which steps to take.

I.e. in IIS 7.5, the error message you're quoting is likely to occur due to your ApplicationPoolIdentity not being assigned the permissions. Your web application belongs to an application pool and so you need to give the permissions to the OS account that your web application's application pool runs under. Often this is something like NetworkService but you may have customized it to run under a purpose made account. Without more info it's difficult to help you.


Can I give this permission programmatically? Please help. I am having same problem.
Thanks this solved my problem as well. I am using impersonation which apparently makes it necessary to assign READ permissions to the application's directory for the impersonated account.
I keep getting "Failed to enumerate objects in the container. Access is denied." afterI I give permission
Right click on folder you need to give security permission to. This is the root folder where you application is published and is the same folder as your IIS website physical path. Choose properties from the context menu and click on the Security tab. Edit users, and then Add a user. Click the Locations button and choose the top icon (looks like My Computer). In the text area, enter IIS_IUSRS. Press OKs repeatedly until all context menus are close. Restart your web site and navigate to it again.
If you don't want to figure out permissions on the physical path for the website, then give permission to everyone! That is a quick and not-recommended hack for all physical file/folder access.
J
John

I was having the same problem, here is the solution that worked for me.

IIS Manager Right clicked on that Website Edit Permissions Added user 'IIS_IUSRS' from Security tab Gave full permissions to User 'IIS_IUSRS' Set the Application Pool's Identity to 'ApplicationPoolIdentity'


I wouldn't recommend this for production purposes. I believe IIS_IUSRS is an anonymous account and you'd be giving it full access to the entire directory structure of the website
Saved my day too, as I figured out permission is the culprit too I used another apppool identity and it worked!
M
Michael

For Visual Studio (VS) developers: As hinted at by Harvey Darvey, Savage, and Snives, your Application Host Configuration may be pointing to the wrong application physical path. Search for virtualDirectory within /.vs/config/applicationhost.config to change the physicalPath if it is incorrect.

https://i.stack.imgur.com/1CvTY.png

Make sure the physicalPath is correct:

https://i.stack.imgur.com/QUFiR.png


You can also do this exact same thing in project => properties => project url => create virtual directory, choose yes to remap to the correct physical path when prompted
In my case it was bit different but it gave my direction, Thank you very much, it helped me lot :)
I was running my project on the D: drive and changed it to E: drive after reading this answer then I realized the physical path had changed. Thanks
J
JS_Diver

Just to chip in, I received the same kind of error and my problem was quite simple: I was missing the .NET Core Hosting Bundle. Once I installed the tool and restarted the server, it was fine.

You can find the manual to host asp.net core on windows here: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2


Simply installing the .NET Core SDK is not enough to run your ASP.NET Core websites under IIS. I spent several hours working through this error...
It may not be enough, but it does resolve this error. Worked for me. I had assumed that all the .NET components were already included.
Yeah, had to install "Runtime & Hosting Bundle" here: dotnet.microsoft.com/download/dotnet-core/2.2
Ok, "self-contained" package does not live up to its title.
J
Jon Crowell

Facepalm alert:

You will also get this error if the path to the config file is wrong. Double-check it to make sure the physical path is entered correctly in IIS.


As a variant of this, it turns out that I set the path incorrectly to the site itself. I accidentally went through the mapped network share instead of the local system file path.
Had the same face-palm moment. I moved my website to a sub-folder, and thought I'd correctly typed the new path into IIS. The site still appeared to have all the required folders etc underneath it showing in the tree in IIS, so it didn't trigger this as being the reason. I reset permissions etc, didn't resolve it. Then talking through the issue it was suggested to me in passing...and I now have a working site again after 1 hour of wasted time!
Where is this path set? This seems to be my problem but I can't find what I need to change
In development environment: .vs > config > applicationhost.config This is what happens when you don't have a GIT ignore on the file and developers start checking it in.
I had an extra "\" slash in my physical path - shesh. Thanks for this
y
yoel halb

You need to assign permissions for IIS_IUSRS on the local machine (but you don't have to assign for IUSR, in fact it will work even if you explicitly deny permissions).

To assign permissions, just right click on the folder and on the security tab make sure to grant the correct permissions, and if the user is not listed then click "ADD", and enter IIS_IUSRS (and make sure that under "domain" the local computer is selected, or enter in the name field YourLocalComputerName\IIS_IUSRS), and then you are good to go.

If you want you can instead of assigning permissions to the IIS_IUSRS group, you can instead assign to the app pool which should in general be "IIS APPPOOL\ app pool name".


From following website: iis.net/learn/get-started/planning-for-security/… The IIS_IUSRS group replaces the IIS_WPG group. This built-in group has access to all the necessary file and system resources so that an account, when added to this group, can seamlessly act as an application pool identity.
Still getting access denied.
u
user3069438

To resolve this, make sure you installed the hosting bundle.

https://i.stack.imgur.com/1xBuF.png


Simple and fast for me
Solved my problem too. Though I needed a newer version. Latest, as of 5/19/2022 seems to be 6.0. docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/…
T
Tanuj Gulati

The same thing happened with me , Try checking this by double clicking on the Connection strings on the right pane of IIS 7 when you select a website.

It will give you an error (that there is some problem with web config file), because you have used URL rewrite rules and the respective component is not installed.

Install “Microsoft URL Rewrite Module 2.0 for IIS 7” and this should fix your problem


C
Celt

Nothing here worked for me, I found this command in another SO answer though and it solved my problem. Just start command prompt as an administrator and run this command:

run->cmd

run "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"

Credit: User Vicxx


To fix my vs 2017 development environment I had to remove IIS from my windows 7 features. Add it back, update and install all the stuff as needed. The final step was running the regiis from with visual studio 2017 command prompt. Now it all works again, 8 hours of time spent fixing this. uck..
F
Frederik Struck-Schøning

Ehm. I had moved my site/files to a different folder. Without changing the path in the IIS website.

You may all laugh now.


M
MrNams

Install ASP.NET Core module

Download the installer using the following link: https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer


had to come this down to get my api work.
This is what you need if you're running ASP Core 5.0 (or higher, presumably)
s
shA.t

I do these steps to solve this problem in Windows Server 2012, IIS 8.5. Should work for other versions too.

Go to server manager, click add roles and features In the roles section choose: Web Server Under Security sub-section choose everything (I excluded digest, IP restrictions and URL authorization as we don't use them) Under Application Development choose .NET Extensibility 4.5, ASP.NET 4.5 and both ISAPI entries In the features section choose: NET 3.5, .NET 4.5, ASP.NET 4.5 In the web server section choose: Web Server (all), Management Tools (IIS Management Console and Management Service), Windows


where is server manager? I use windows 10, iis v 10
w
w00ngy

Try installing the 'Application Development' sub component of IIS as mentioned in this SO

Click "Start button" in the search box, enter "Turn windows features on or off"

in the features window, Click: "Internet Information Services"

Click: "World Wide Web Services"

Click: "Application Development Features"

Check (enable) the features. I checked all but CGI.

https://i.stack.imgur.com/ikyC0.png


J
Jeff Turner

Make sure you have the application pool set to the correct version of the framework. You'll also need to make sure your aspnet, IIS_IUSRS, or IUSR users have read access to the application's directory.


How can i do this?? "make sure your aspnet or IUSR users have read access to the application's directory"
go to C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\ and make sure the WebSite5 directory has read permissions for the IUSR and IIS_IUSRS group. You do this by right clicking on the directory and selecting properties, then going to the security tab.
But i don't see IUSR and IIS_IUSRS group in the group or user name!! i don't know what is the problem??
do you see an option for network service? by default that is what the application pool will use when you're working on your desktop (if i recall correctly)
when you go to the security tab, after you've right-clicked on the folder and selected properties. Click the "Add" button, which should spawn another window with an "Edit" button. Click the "Edit" button and type in "Network Service" into the textbox, It should find the user and add it to the list. Then make sure that user has Read priviledges at the very least.
v
valen

One other possibility that fixed this problem for me:

IIS -> Edit Permissions -> Security Tab -> Give "Users" appropriate permissions (or IIS_IUSRS, depending on your setup)


t
theJerm

This also happened to me when I had a default document of the same name (like index.aspx) specified in both my web.config file AND my IIS website. I ended up removing the entry from the IIS website and kept the web.config entry like below:

<system.webServer>
  <defaultDocument>
    <files>
      <add value="index.aspx" />
    </files>
  </defaultDocument>...

e
eagle779

Sometimes this message has can be missing components in your IIS environment e.g. a particular framework, or an IIS feature like dynamic compression, rather than permissions to web.config.

If this is the case, a solution can be to install and use the Microsoft Platform Installer and install those missing components - you might have to take a stab at what exactly is missing because the error log and message don't tell you.


NB: dynamic compression is in the 'windows features' list and not MPI
@Simon_Weaver actually dynamic compression is in the list of things MPI will install for you and has been since 2012, perhaps even before then. cheers.
A
Ahmad

Actually, any missing module can lead to this problem. In my case, it was CORS Module. So read the web.config and seek for any addon module that you specified in it and check that it is installed, or install it otherwise. Unfortunately, the error message does not help finding the problem at all.


S
SownRocker

You need to set permission for your Website folder or copy they to wwwroot folder :) - If set permission, have 2 way: + Right click to Your Website folder + Or right click to Your Website in IIS => select Edit permission and Add a permission (IUSR - default iis user) Good luck ;-)


In my case - iis 8, it was Authenticated Users.
c
chengbo

In my case, it caused by application physical path point to a non-existent folder in IIS.

https://i.stack.imgur.com/AVxq6.png


R
Rob Sedgwick

got this problem with mapped drives, IIS doesn't work with mapped drives. Just use the unmapped drive.


D
DanO

I had the issue as I copied my web.config file down from prod, changed everything not prod related except the Rewrite rules which were rewriting to httpS.

Removed those rules and ran fine.


O
OnResolve

Pretty straight forward, IIS doesn't have access to your web.config. I'd start by taking the site out of your documents folder. Verify it has r/w permissions then as well.


I move the site from Document to another place but the same error appear
M
Munna Singh

I too had the similar issue and i fixed it by commenting some sections in web.config file.

The project was earlier built and deployed in .Net 2.0. After migrating to .Net 3.5, it started throwing the exception.

Resolutions:

If your configuration file contains "


C
Community

You can get this error if you have a synax error or issue in your web.config file.

For me, it was a stray ampersand in a URL that I was using in the AppSettings.


I also got this with a Password in a Connection String that had an & - encoding it to & got me past this problem. Thanks, this is the only answer here not to do with Permissions.
k
kbbucks

On the IIS 7.5 error page you get click on 'View more Information' at the bottom of the page and in this case it will take you to the following Microsoft link:

http://support.microsoft.com/kb/942055

The 0x80070005 Error Code seems to be permissions related and following the steps in Resolution 2, Method 2 assigning the correct accounts with permissions on relevant folders should fix it - I spent 3 days looking for a solution until I came across it, worked straight after.


R
Rahul Sonone

Explore the folder where your website is store and see you will get one extra folder "aspnet_client" delete that folder and it will work for you.

I tried this my problem is solved.

If it works for you please make it as answer so that some body else will also get solution.


L
Luca Steeb

None of this worked for me, but I finally have a solution which worked for me:

remove this line in web.config:

<compilation debug="true" targetFramework="4.5"/>

don't remove this line

<compilation debug="true"/>