Thursday, December 16, 2010

Configuring Large File Support in SharePoint

From the article on office.microsoft.com:


The biggest change included in Windows SharePoint Services SP1 is the support for uploading large files. By default, the maximum size for uploading files is set to 50 MB. If you need to be able to upload larger files (such as when you use smigrate.exe to migrate a site between servers), you can change this setting to any value up to 2 GB (2047 MB).
To configure large file support you must increase the default upload size in SharePoint Central Administration. You may also need to perform the following additional actions (depending on your hardware configuration):
  • Tune the Microsoft Internet Information Services (IIS) connection timeout setting. The default timeout for connections in IIS is 120 seconds (2 minutes). Depending on your maximum file size and how long it takes for the file to be uploaded, you may not need to change this setting. If, however, IIS is timing out when you upload large files, you can change this property to ensure that larger files can be uploaded successfully.
  • Increase the default chunk size for large files. The large-file-chunk-size property sets the amount of data that can be read from server running SQL Server at one time. If you have a file that is greater than your chunk size (such as 70 MB when the chunk size is set to 5 MB), the file would be read in 14 chunks (70 / 5). The chunk size is not related to the maximum upload file size. The chunk size simply specifies the amount of data that can be read from a file at one time. By default, the large-file-chunk-size property is set to 5 MB. If you notice performance or scale problems on the client or server, then you may need to tune this setting to get the performance you are targeting. Note that if you raise the chunk size too high, the files might use up too much front-end memory and you may need to lower this setting.
  • Increase the maximum size limit for Web Parts. By default, the maximum size limit for a Web Part is 1 MB. If you need to accomodate large Web Parts, you can change this setting in the web.config file for your server or servers running Windows SharePoint Services.
Increase the maximum upload size
  1. Click Start, point to All Programs, point to Administrative Tools, and then click SharePoint Central Administration.
  2. Under Virtual Server Configuration, click Configure virtual server settings.
  3. On the Virtual Server List page, click the virtual server you want to change.
  4. On the Virtual Server Settings page, under Virtual Server Management, click Virtual server general settings.
  5. Under Maximum upload size, type the maximum file size (in MB) that you want to allow to be uploaded.
  6. Click OK.
If IIS is timing out when you upload large files, you can configure the Connection timeout setting in IIS to allow more than the default 120 seconds (2 minutes).
Tune the IIS connection timeout
  1. Click Start, point to All Programs, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.
  2. Right-click the virtual server you want to configure, and then click Properties.
  3. Click the Web Site tab.
  4. In the Connections section, in the Connection timeout box, type the number of seconds you want IIS to wait before timing out.
  5. Click OK.
Increase the default chunk size for large files
The large?file?chunk?size property must be set from the command line. This property is configured for a server or server farm, and cannot be configured for an individual virtual server. To set this property, use the following syntax:
Stsadm.exe ?o setproperty ?pn large?file?chunk?size ?pv <size in bytes>.
After making a change to this property, you must restart IIS. You can restart IIS by typing iisreset on the command line.
Increase the maximum limit for Web Parts
This change is required only when working with large Web Parts. The maximum limit for Web Parts is set to 1048576 bytes by default.
  1. On your server computer running Windows SharePoint Services, open Notepad.
  2. In Notepad, navigate to the %HomeDrive%\Inetpub\wwwroot folder and open the web.config file.
  3. Locate the PropertySize attribute in the configuration\SharePoint\WebPartLimits element.
  4. Change the PropertySize attribute to the maximum size you need.
  5. Save and close the web.config file.
Large file support limitations
The following features do not support files larger than 50 MB:
  • Virus checking. (Joel: I do believe this is the case.  It’s true as well that files over 16MB by default are not indexed, this can be changed.)
  • Picture libraries (Joel: really?)
  • Streaming files (Joel: We don’t support streaming files anyway do we?  Love for someone to explain this one.)
  • Site templates (limit of 10 MB Joel: Only in WSS 2.0, this is deafult and can be increased in WSS 3.0).
This KB “Error message when you try to upload a large file to a document library on a Windows SharePoint Services 3.0 site: “Request timed out”” has some great info on configuring the server to allow larger file sizes and increasing the time out limits.  Caution!  Whenever you increase timouts, you are essentially increasing the length of sessions and you’ll have more concurrent sessions. 
Increase the maximum upload size
1. Click Start, point to All Programs, point to Administrative Tools, and then click SharePoint Central Administration.
2. Under Virtual Server Configuration, click Configure virtual server settings. On the Virtual Server List page, click the virtual server that you want to change.
3. On the Virtual Server Settings page, under Virtual Server Management, click Virtual server general settings.
4. Under Maximum upload size, type the maximum file size in megabytes that you want, and then click OK. You can specify a maximum file size up to 2,047 megabytes.

Increase the connection time-out setting
By default, the IIS connection time-out setting is 120 seconds. To increase the connection time-out setting, follow these steps: 1. Click Start, point to All Programs, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.
2. Right-click the virtual server that you want to configure, and then click Properties.
3. Click the Web Site tab. Under Connections, type the number of seconds that you want in the Connection time-out box, and then click OK.

Add the executionTimeout value1. Use Notepad to open the Web.config file.
By default, this file is in the following location:
Program Files\Common Files\Microsoft Shared\Web server extensions\12\TEMPLATE\LAYOUTS
2. Add the executionTimeout value that you want. For example, replace the value as follows.

Existing code
 <location path=”upload.aspx”>
    <system.web>
      <httpRuntime maxRequestLength=”2097151″ />
    </system.web>
  </location>
Replacement code
 <location path=”upload.aspx”>
    <system.web>
      <httpRuntime executionTimeout=”999999″ maxRequestLength=”2097151″ />
    </system.web>
  </location>
3. After you change the file, click Save on the File menu.
4. Use Notepad to open the Web application Web.config file. By default, this file is in the following folder:
Inetpub\wwwroot\wss\VirtualDirectories\VirtualDirectoryFolder
5. Change the following line in the file.

Existing line
<httpRuntime maxRequestLength=”51200″ />
Replacement line
<httpRuntime executionTimeout=”999999″ maxRequestLength=”51200″ />

6. After you change the file, click Save on the File menu.
7. Exit Notepad

6 comments:

  1. Hi, I've done all this on my setup but we are still having issues with PDF files from 3MB upwards. The max file limit is set to 500MB, the db & IIS timeouts to 6 hours. It only happens with PDFs, particularly those with images inserted into the file.

    WSS 3.0
    Uploading from XP Pro & Win7
    IE 7 & 8

    ReplyDelete
  2. Great post! I am actually getting ready to across this information, It's very helpful for this blog.Also great with all of the valuable information you have Keep up the good work you are doing well.
    IOS Training in Chennai

    ReplyDelete
  3. Thanks a lot for sharing such a good source with all, i appreciate your efforts taken for the same. I found this worth sharing and must share this with all.



    Dot Net Training in Chennai | Dot Net Training in anna nagar | Dot Net Training in omr | Dot Net Training in porur | Dot Net Training in tambaram | Dot Net Training in velachery











    ReplyDelete