My usual tricks aren't helping. I've been managing two Windows 2008R2 web servers for a 8 years, with a Shared configuration on UNC path, that host about 3000 small web sites.
I am moving our sites to Windows 2019, UNC shared configuration, and roughly 2000 sites.
But, WAS will fail to start (or restart) with more than ~70 sites configured.
This occurs when I copy/paste valid XML into the shared applicationHost.config, or add sites via appcmd or New-WebSite
The applicationHost.config is almost 40k lines in length, properly formatted XML.
If this configuration is used LOCALLY, then WAS will restart nicely and all sites work!
If I put this shared configured on a UNC path, it will work UNTIL WAS restarts. I can bulk add many sites, they function, up until a WAS restart.
If I add comments blocks to disable applicationHost.config between lines 1031 and and 38518, then WAS will start!
But when I comment out lines 1649 to 38518, then WAS fails with
net start was
The Windows Process Activation Service service is starting.
The Windows Process Activation Service service could not be started.
A system error has occurred.
System error 5 has occurred.
Access is denied.
Event viewer says...
Event ID 5189
The Windows Process Activation Service failed to generate an application pool config file for application pool '*'. The error type is '0'. To resolve this issue, please ensure that the applicationhost.config file is correct and recommit the last configuration changes made. The data field contains the error number.
Procmon shows ACCESS DENIED on C:\inetpub\temp\appPools\APCD26B.tmp
BUT I have allowed the IUSR specified to have Modify permission on this folder.
Last weird clue... the intent is to have \\web1 and \\web2 used the Shared Config on \\unc
When the shared config is on \\unc, both servers suffer this error with larger applicationHost.config, but work ok with smal shared config.
BUT if I place the shared config on \\web1, and have \\web1 used shared config on its own share, WAS can start on \\web1 with all sites enabled!
But WAS will fail on \\web2, pointing to shared config on \\web1
It almost feels like an obscure XML parsing failure over UNC with a larger file. I am hoping there is some other avenue to be suggested. Ideas?
Thanks!