MaxWebConfigFileSizeInKB and IIS 10 - iis

I am using a Web application with a web.config file larger than 250KB on IIS 10. In IIS 8.5 and below the registry key HKLM\SOFTWARE\Wow6432Node\Microsoft\InetStp\Configuration\MaxWebConfigFileSizeInKB (REG_DWORD) could be set to allow web.configs to be larger than 250KB.
However it seems that this registry key is not read by IIS 10 any longer.
Does anyone know if this key should still work on IIS 10 or how to use config files larger than 250KB in combination with IIS 10?

I forgot to set the 32 bit version registry key,
HKLM\SOFTWARE\Microsoft\InetStp\Configuration\MaxWebConfigFileSizeInKB (REG_DWORD)
It works now,

For IIS Express on Windows 10 you need to set the MaxWebConfigFileSizeInKB value in the registry here: HKLM/HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\IISExpress\10.0\mimic\Configuration.
Change maximum allowed configuration file size [IIS Express 10/Windows 10]

Related

Maximum size of web.config in iis 10

One of our sites has a long web.config - a little over the default max size for a web.config.
In windows 8 there was a registry key for the maximum allowed size of the web.config.
What is the setting in iis 10 (windows 10) to change this?
Thanks,
Ian
I recommend you to move Sitecore configuration out of Web.config file like it was done it latest Sitecore versions:
<sitecore configSource="App_Config\Sitecore.config"/>
It is more convenient and you should not change your registry.
Although I do agree with Anton that moving parts to get the config smaller is the best solution, you can find an answer in this post:
MaxWebConfigFileSizeInKB and IIS 10
HKLM\SOFTWARE\Wow6432Node\Microsoft\InetStp\Configuration\MaxWebConfigFileSizeInKB
(REG_DWORD)
HKLM\SOFTWARE\Microsoft\InetStp\Configuration\MaxWebConfigFileSizeInKB
(REG_DWORD)
Did not test this myself ;)

Setting MaxWebConfigFileSizeInKB in IIS8.5

I have a web.config file that references a rewrites.config file that is used by the inbuilt IIS Rewrite module. However my rewrites.config file is larger than 250kb, so i have followed the advise on this post. However it appears that in IIS 8.5 (Windows Server 2012) these keys are ignored. I've search the interwebs and haven't been able to find much on IIS 8.5, anyone got any advice on how to increased the maximum.config size? Or alternatively split rewrites.config into smaller files?
You can just create the key.
Right click on the parent node in REGEDIT - add a new Key called Configuration. Then add a new DWORD for MaxWebConfigFileSizeInKB (you'll probably want to switch to the decimal view) and set the value in KB.
I've just tested this on a rewritemap.config file 753kb in size on a server running IIS8.0 on Windows Server 2012 (I'm making an assumption here that this won't be terribly different from IIS 8.5). You'll need to set the appropriate key depending on whether this is 64bit or 32bit (see here). If in doubt set both. I can confirm that this value is being used since turning the value down to (for example) 10 triggers the error again.
Don't forget to restart the app pool.

How can I change the Start Automatically setting in IIS 8.5

I have a problem with a web site running on an IIS 8.5 server that is not started automatically when the server reboots. The site is originally installed through ServerManager, where there is this line of code:
site.ServerAutoStart = false;
Now I would like to change this setting through the IIS Manager interface.
In IIS 7.5 i can set a web site to start automatically by setting the Start Automatically property under Advanced settings. But this setting is gone in IIS 8.5.
I found a solution to my problem inspired by this question:
How to config application pool in IIS 7.5 automatically re-start when it was stopped?
It is possible to access and edit all the detailed settings through the Configuration Editor, which can be accessed through the Features View in IIS Manager. I realize that in the link Mr Mo sent, the Configuration Editor was used, but it is not specified very clearly how to access it.
Check it out:
http://blogs.msdn.com/b/benjaminperkins/archive/2014/01/07/configure-the-iis-application-initialization-module.aspx
I think it will solve the issue.

After upgrading from CF9 to CF10, website displays only blank screens

I have successfully installed ColdFusion 10. However my web site won't work without the previous Coldfusion 9 instance running.
It is like CF10 cannot see my IIS web site. I do not get any errors when I try using CF10, it just doesn't render a screen (all blank).
There could be a number of reasons for this, as quite a large number of people seem to be having issues with the upgrade to ColdFusion 10. Based on the information you've provided, it sounds like IIS is still connected to ColdFusion 9 rather than ColdFusion 10.
You can verify this by adding the following snippet to a ColdFusion page to output your ColdFusion version (when ColdFusion 9 is running):
<cfoutput>#SERVER.ColdFusion.ProductVersion#</cfoutput>
If it starts with 9, then IIS is connecting to the old ColdFusion version. If this is the case I would suggest rerunning the ColdFusion connector (for version 10). Instructions for using the configurator are available at http://help.adobe.com/en_US/ColdFusion/10.0/Installing/WSc3ff6d0ea77859461172e0811cdec18a15-7ffb.html but it should be a case of running this (the ColdFusion 10 configurator, not the ColdFusion 9 one), removing ColdFusion from all the IIS sites and then readding these entries in the configurator.
You should then find when loading a page ColdFusion 10 is used. If this doesn't work, you should ensure the ColdFusion 10 service is running review the log files as suggested by Aaron Greenlee.

How do I properly read the AccessFlags property using DirectoryServices on IIS 7.x?

I have IIS 7.5 on Windows 7 x64 and IIS 7.0 on Windows 2008 SP2 x86. In both cases, all the IIS 6 Compatibility features have been installed.
In IIS Manager, I have created a virtual directory named TestAccess with the physical path
c:\inetpub\wwwroot\TestAccess
I am trying to read the AccessFlags properties using VB.NET code like this:
Dim de As New DirectoryEntry("IIS://localhost/W3SVC/1/Root/TestAccess")
Console.WriteLine(de.Properties("AccessRead").Item(0))
Console.WriteLine(de.Properties("AccessWrite").Item(0))
Console.WriteLine(de.Properties("AccessExecute").Item(0))
Console.WriteLine(de.Properties("AccessSource").Item(0))
Console.WriteLine(de.Properties("AccessScript").Item(0))
Unfortunately, this code appears to grab the (inherited) information from
c:\Windows\System32\inetsrv\config\applicationHost.config
but if I go into IIS Manager, select the virtual directory, select Handler Mappings, click Edit Feature Permissions and make any changes, the actual changes are written to
c:\inetpub\wwwroot\TestAccess\web.config
If not DirectoryServices, what instrumentation code should I use to get a combined view of the applicationHost.config and the specific directory's web.config files so I can read the effective values of those properties? I would prefer something that works with both IIS 6.0 and 7.x.
As you're aware the System.DirectoryServices bits wrap the IIS6.0 compatibility layer. But the compatibility layer simply provides a mapping to features that were supported in IIS6 only.
IIS6 had no real knowledge of ASP.NET other that it being a script mapping to one or two ISAPI filters (and a minor update to the IIS MMC to permit switching en-mass the script maps from one version of ASP.NET to another).
IIS6 stores much of its configuration in the metabase so the API's are designed to manipulate the metabase store. The IIS6 metabase is ignorant of ASP.NET and web.config, again ASP.NET is just a script map.
There were never any settings to control IIS6 in a site's web.config file. IIS 6 is blind to this file and so the compatibility layer is also blind and doesn't take into account additional settings that might be configured in the <system.webServer> section of a site's web.config file.
The IIS6 compatibility layer emulates the metabase by modifying equivalent settings in applicationHost.config only.
IIS7 changes the game and settings in web.config files (under the <system.webServer> section are now assimilated into the overall runtime configuration of a site when it starts.
So the bottom line is if you want an aggregated view of an IIS7 site's configuration you'll need to use the new managed API's Microsoft.Web.Administration and Microsoft.Web.Management. You can also use the appcmd.exe command line configuration tool as well.
Using these tools you can specify where you want to read or modify settings e.g. at the Application Host level or at the local site level.
It should be noted that many settings are always assumed to be inherited unless overridden by a configuration file at a more specific location (e.g. site or subdirectory).
The IIS7 MMC console tends to place changes (such as to handler mappings, mime types etc) in the site local web.config file. If you need to ensure these changes are more persistent and not at risk of being deleted then you can commit them to the applicationHost.config file, but you need to use either appcmd.exe (with the /commit:apphost switch or work with the managed API's using tools such as VB.NET, C# or PowerShell.

Resources