I'm trying to allow large file uploads from inside a web part, and I'm having some timeout issues. I'm attempting to increase the executionTimeout to deal with this, but I've seen different suggestions.
There are web.config files here:
C:\inetpub\wwwroot\wss\VirtualDirectories\80
and here:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS
Where do I make this change? Do they have to be in sync somehow? I've tried changing properties at each location and it's sometimes causing the web app to shut down.
Edit
I should note that this is for sharepoint 2010.
More Info
A lot of articles on the web point to 12 hives, so Sharepoint 2007. My guess is that's IIS6 specific. In integrated pipeline on IIS7+, the system.webServer > requestFiltering > requestLimits web.config section is used. In sharepoint, it's set to 2GB, which is more than enough for my requirements.
As for the execution timeout, this can also be set in IIS Manager at Manage web site > advanced settings > connection limits. The default is 120 seconds. Strangely, changing this value does not cause any web.config changes. So, I imagine that the httpRuntime executionTimeout setting has no effect.
This is an interesting post as well (not SP related, but I don't think that matters): http://blog.richardadleta.com/2010/11/aspnet-httpruntime-element.html
And some testing...
I tried uploading a video that was 55mb. The first error I got was maxmimum request length exceeded error. The web.config (at wss\80) has the system.webServer set at 2GB, but the default of the system.web > httpRuntime was 50MB. I changed this to 100MB, and that error disappeared. This is odd, as the system.webServer should be used for integrated pipeline.
I ended up wrapping the upload in a SPLongOperation object, so I that seemed to get around any possible issues with the executionTimeout being exceeded. I'll leave that test to another day, but I was able to upload a video that took 4 minutes to process.