Yesterday a colleague (Patrick Heyde) solved an interesting problem with MOSS 2007 and IIS 7 related to content deployment.
Some background infos: Content Deployment in MOSS 2007 first exports all content to the file system as XML and binary files and afterwards packages these files into cab files which then get uploaded through http to the target MOSS server where they then get extracted and imported.
The preconfigured maximum size of the cab files generated by content deployment is 10 MB as discussed in this article. IIS 7 on the other hand has a preconfigured upload limit of 29 MB as discussed in KB article 925083.
So with these two limits (maximum size of a cab file = 10 MB and maximum upload size in IIS 7 = 29 MB) we would not expect any problems.
The problem here is that MOSS does not split single exported files into multiple CAB files. So in case that the MOSS site contains single documents which cannot be compressed to less then 10 MB then the CAB file size can become bigger than 10 MB.
This will become critical as soon as the CAB file size exceeds 29 MB.
As soon as content deployment trys to upload a CAB file with more than 29 MB in size the content deployment job will fail and you will find the following entries in the application event log of the exporting server:
Event ID: 5323
Source: Content Deployment
Description: Failed to transfer files to destination server for content deployment job ‘test 1’. Exception was ‘System.Net.WebException: The remote server returned an error: (404) Not Found.
Event ID: 4958
Source: Content Deployment
Description: Publishing: Content deployment job failed. Error: ‘System.Net.WebException: The remote server returned an error: (404) Not Found.
Event ID: 6398
Source: Windows Sharepoint Services
Description: The Excecute method of job definition Microsoft.Sharepoint.Publishing.Administration.ContentDeploymentJobDefination threw an exception. The remote server returned an error (404) Not Found.
In addition you will find similar entries in the ULS log on the source server:
OWSTIMER.EXE (0x0778) 0x079C CMS Content Deployment 0 Unexpected ContentDeploymentJob.DoServerToServer: Remote connection failed while uploading files for source-Job ‘Test’ with exception ‘The remote server returned an error: (404) Not Found.’
To see if the problem really is the upload size you need to check the IIS log on the target server to see if the response is indeed a 404.13
2008-09-01 08:55:08 10.10.10.2 POST /_admin/Content+Deployment/DeploymentUpload.aspx filename=%22ExportedFiles13.cab%22&remoteJobId=%11456fa7ed-ddcdedcdd-9aae-a1adsf5re1db%22 1976 – 10.10.10.3 – 404 13 0 62
To solve this issue you need to modify the web.config of the Central Admin site and add an entry similar to the following:
52428800 = 50 MB in this sample. You might need to adjust this to your specific needs.