Troubleshooting – IIS RequestFiltering
The Microsoft Azure App Service can host Web Apps that are built using various stacks. Although we aren’t using .NET for our App, it’s important to remember that this service uses IIS to route traffic to the underlying Application Servers. Whether we’re using PHP or Java, we need to be familiar with the Web.Config. This file has its origins in ASP.NET and is used to configure the IIS pipeline.
If you’re uploading resources through your Web App, chances are that you’ve observed the following error message.
The request filtering module is configured to deny a request that exceeds the request content length.
This example, configures both the maximum request length and the maximum content length. This file must be placed at the root App.
<?xml version="1.0"?> <configuration> <system.web> <!-- maxRequestLength is in kilobytes (KB) --> <httpRuntime maxRequestLength="4194303" /> </system.web> <system.webServer> <security> <requestFiltering> <!-- maxAllowedContentLength is in bytes (B) --> <requestLimits maxAllowedContentLength="4294967295"/> </requestFiltering> </security> </system.webServer> </configuration>
Things That we Should Keep in Mind
- maxRequestLength is in kilobytes (KB)
- maxQueryString is in bytes (B) and of type uint. Its default value is 2048
- maxUrl is in bytes (B) and of type uint. Its default value is 4096
- maxAllowedContentLength is in bytes (B) and its default value is 30000000, which is about 28.61 MB. Its type is uint, and its max value is 4,294,967,295 bytes = 3,99 GB
- requestFiltering Element for security [IIS Settings Schema]
- requestLimits Element for requestFiltering [IIS Settings Schema]
- Configure web apps in Azure App Service
- Azure App Service web app advanced config and extensions