Fórmulas e Cenas

Object Reference Not Set to Instance of an Object

  Home  |   Contact  |   Syndication    |   Login
  40 Posts | 0 Stories | 7 Comments | 0 Trackbacks

News

Archives

Post Categories

Links

Tuesday, September 20, 2011 #

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
		if(workerRequest.HasEntityBody())
		{
			// 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;
			if(!workerRequest.IsEntireEntityBodyIsPreloaded())
			{
				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. 
		context.Response.Redirect("~/Erros/FicheiroGrande.aspx");
	}
}

 

Source

<script type="text/javascript" language="javascript">

        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(refresh);

        function refresh() { //Your code here; }

</script>

 

Source