If you need to perform some task, which, as you know, may take some time, it would be nice to use AsyncControllers, and you can set a different timeout between actions
eg
[AsyncTimeout(3000)] //timeout in miliseconds public void DoTaskAsync(){ //something that takes a long time AsyncManager.Parameters["result"] = contentresult; //Contentresult is your data result of process } public ActionResult DoTaskCompleted(String result){ return json(result); }
http://msdn.microsoft.com/en-us/library/ee728598.aspx#Y4400 More details
otherwise ... HttpContext.Server.ScriptTimeout = 3000;
source share