Close this search box.

How to handle “”Maximum request length exceeded” exception

In global.asax:

protected void Application_BeginRequest(Object sender, EventArgs e)
	HttpRuntimeSection runTime = (HttpRuntimeSection)WebConfigurationManager.GetSection("system.web/httpRuntime");
	//Approx 100 Kb(for page content) size has been deducted because the maxRequestLength proprty is the page size, not only the file upload size
	int maxRequestLength = (runTime.MaxRequestLength - 100) * 1024;
	//This code is used to check the request length of the page and if the request length is greater than 
	//MaxRequestLength then retrun to the same page with extra query string value action=exception

	HttpContext context = ((HttpApplication)sender).Context;
	if(context.Request.ContentLength > maxRequestLength)
		IServiceProvider provider = (IServiceProvider)context;
		HttpWorkerRequest workerRequest = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
		// Check if body contains data
			// get the total body length
			int requestLength = workerRequest.GetTotalEntityBodyLength();
			// Get the initial bytes loaded
			int initialBytes = 0;
			if(workerRequest.GetPreloadedEntityBody() != null)
				initialBytes = workerRequest.GetPreloadedEntityBody().Length;
				byte[] buffer = new byte[512000];
				// Set the received bytes to initial bytes before start reading
				int receivedBytes = initialBytes;
				while(requestLength - receivedBytes >= initialBytes)
					// Read another set of bytes
					initialBytes = workerRequest.ReadEntityBody(buffer, buffer.Length);
					// Update the received bytes
					receivedBytes += initialBytes;
				initialBytes = workerRequest.ReadEntityBody(buffer, requestLength - receivedBytes);
		// Redirect the user to the same page with querystring action=exception. 
This article is part of the GWB Archives. Original Author: SÉRGIO LIMA

Related Posts